LeetCode 26 删除有序数组中的重复项

题目: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。 将最终结果插入 nums 的前 k 个位置后返回 k 。 不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 判题标准: 系统会用下面的代码来测试你的题解: 如果所有断言都通过,那么您的题解将被 通过。 解题: 记录重复的元素个数, 然后把不重复的元素赋值到nums长度减去重复个数的位置 代码 官方解答:  咱这也算是勉强掌握了双指针吧

Continue reading


LeetCode 25 K个一组翻转链表

题目: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 解题: 试了下切片,没解出来,困难是真的难 官方解答: 

Continue reading


LeetCode 18 四数之和

题目: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): 0 <= a, b, c, d < n a、b、c 和 d 互不相同 nums[a] + nums[b] + nums[c] + nums[d] == target 你可以按 任意顺序 返回答案 。 解题: 循环处理,这次多了一个,应该不是双指针了吧 代码: 官方解答:排序+双指针 排序,然后先循环一次最外面的一层,再双指针,又是没有掌握双指针的一天。。。

Continue reading


LeetCode 17 电话号码的字母组合

题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 解题: 写一个映射表,然后把每一个数字拆分成字母组成的数组,后面数字代表的字母分开跟到前面的数组后面 代码 官方解答:回溯

Continue reading