Hi there 👋

Welcome to my blog

002:两数相加

本题采用了 哈希表 与 链表 的知识。原题链接 题干 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 题解 首先写出边界条件。 if (l1 === null || l2 === null) { return null; } 本题主要需要考虑进位位,因此需要单独一个变量来表示是否存在进位。随后,根据题目描述,我们可以在一个链表结束后为其接上一个 value 为 0,next 为 null 的新节点。由于不会有 0 出现在最后一位,因此当两个链表都是 0 且下一位都是 null 时就结束了,最后如果有进位则补 1,没有则输出最后的结果。 export class ListNode { val: number; next: ListNode | null; constructor(val?: number, next?: ListNode | null) { this.val = val === undefined ? 0 : val; this....

July 17, 2022 · 197 words · Pcrab

001:两数之和

本题采用了 哈希表 的知识。原题链接 题干 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 提示: $2 \leq \text{nums.length} \leq 10^4$ $-10^9 \leq \text{nums}\left[i\right] \leq 10^9$ $-10^9 \leq \text{target} \leq 10^9$ 只会存在一个有效答案 题解 首先,根据提示,写出一些边界条件: function isLegalNumber(num: number): boolean { if (-1e9 > num || 1e9 < num) { return false; } return true; } 在每次从数组中取出数字时,通过该条件判断是否直接返回空数组 []。 另外,在函数最开始时再判断一下数组的长度。 // 边界条件 if (2 > nums.length || 1e4 < nums.length || !isLegalNumber(target)) { return []; } 暴力求解 最简单的一种方法,但是需要 $O(n^2)$ 的复杂度。两次 for 循环遍历 nums 数组来找到对应的答案。...

July 17, 2022 · 244 words · Pcrab

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post $> hexo new "My New Post" More info: Writing Run server $> hexo server More info: Server Generate static files $> hexo generate More info: Generating Deploy to remote sites $> hexo deploy More info: Deployment

78 words · Pcrab