LeetCode 6 Z字形变换

题目: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:”PAHNAPLSIIGYIR”。 解题: 两列分成一组,第一列为0~n,第二列为n-1~1,然后把他们放入数组合并即可,一行时直接返回原字符串 代码: 官方解答:

Continue reading


LeetCode 4 寻找两个正序数组的中位数

题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 解题: 两个数组合并为一个数组,然后取中位数 代码: 看了下官方解析,我这个完全算偷鸡了,最关键的代码用内置函数代替了 官方的这个解法看的我有点懵,先记录一下,后面再研究研究

Continue reading


LeetCode 3 无重复字符的最长子串

题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 解题: 循环查找不重复的字符串 代码: 时间复杂度O(n^2),大力出奇迹,只能算是解出来了 看看官方给出的解法 说是用了滑动窗口的方法,大致明白了是怎么一回事。 然而官方给出的方法只有击败了38.90%的用户,看来官方的水平也有很大的提升空间,要是能把效率最高的代码放出来就好了。

Continue reading


LeetCode 2 两数相加

题目: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 解题: 把链表相同位置的值加起来,满10就向下一位进一 代码 刚开始忘了最后对进位做判断,出错了。循环结束后,需对进位做判断,如果大于0,则需生成一个新节点,值为1。

Continue reading


LeetCode 1 两数之和

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 解题: 任意两个数相加等于目标值就可以 代码 时间复杂度是O(n^2),效率真差 看了下官方题解,用了哈希表 时间复杂度是O(n),效率飞起来了,666

Continue reading