很巧妙啊
去追啊
这个作者很懒,什么都没留下…
展开
-
283. Move Zeroes
也是很巧妙的想法了 class Solution { public void moveZeroes(int[] nums) { int pos = 0; for( int i : nums ){ if( i != 0 )nums[ pos ++ ] = i; } while( pos < n...原创 2018-09-28 23:01:52 · 97 阅读 · 0 评论 -
33. Search in Rotated Sorted Array
先判断target在不在数组中,如果在哪一段也就是确定下标区间之后,就用二分查找,这个是最直白的想法,搂了眼题解应该还有更简便的解法,一次循环既可以找到分割点又可以找到目标值class Solution(object): def search(self, nums, target): """ :type nums: List[int] ...原创 2019-07-21 21:21:47 · 76 阅读 · 0 评论 -
7. Reverse Integer
java版直观解法:class Solution { public int reverse(int x) { int rev = 0; while (x != 0) { int pop = x % 10; x /= 10; if (rev > Integer.MAX_VAL...原创 2019-07-23 23:00:17 · 80 阅读 · 0 评论 -
88. 合并两个有序数组
官方题解三种思路思路一:将两数组作为一个数组进行排序 nums1[:] = sorted(nums1[:m] + nums2)思路二:双指针从前往后,需要额外的空间思路三:从后往前,最后不要忘了将nums2剩余的元素copy过去class Solution(object): def merge(self, nums1, m, nums2, n): ...原创 2019-06-11 17:05:57 · 103 阅读 · 0 评论 -
26. 删除排序数组中的重复项
快慢指针class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ l = len(nums) i = 0 for j in rang...原创 2019-06-11 16:45:28 · 87 阅读 · 0 评论 -
53. 最大子序和
核心思路就是看当前最大和大于0还是小于0,如果大于0就并入最大子序列和的候选集,否则就以当前的元素为新序列思路一:动态规划dpnums[i-1]记录当前最大和,若其大于0就可以组成最大序列的候选项,若小于0则nums[i]为新序列class Solution(object): def maxSubArray(self, nums): """ :...原创 2019-06-11 16:22:39 · 103 阅读 · 0 评论 -
160. 相交链表
在评论区看到的很优雅的解法:定义两个指针分别移动,当其中一个指针如pa移动到链表末尾时指向另一链表的头部headB ,再继续移动,当指针pb移动到末尾时使其指向headB,经过这样的操作,就消除了长度差,两指针当前位置与相交节点之间的距离相同果然优雅的解法不仅需要计算机技能,还需要数学知识==,以及智商==# Definition for singly-linked list.# cl...原创 2019-06-16 09:54:22 · 88 阅读 · 0 评论 -
11. Container With Most Water
class Solution(object): def maxArea(self, height): """ :type height: List[int] :rtype: int """ i, j = 0, len(height) - 1 water = 0 while i ...原创 2019-06-06 09:48:15 · 93 阅读 · 0 评论 -
858. Mirror Reflection
图摘自题目的discussion高赞答案,第二张图是解释class Solution { public int mirrorReflection(int p, int q) { while( p % 2 == 0 && q % 2 == 0 ){ p /= 2; q /= 2; ...原创 2019-03-30 09:50:30 · 124 阅读 · 0 评论 -
1012. Complement of Base 10 Integer
比较常见的思路是把十进制转换成二进制,按位取反后再转换成十进制输出。class Solution(object): def bitwiseComplement(self, N): """ :type N: int :rtype: int """ # x = 1 # while N >...原创 2019-03-21 10:06:44 · 133 阅读 · 0 评论 -
4. Longest Common Prefix
找出一组字符串的最长公共前缀解法一:水平扫描从前往后枚举字符串的每一列,先比较每个字符串相同列的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] ...原创 2019-07-23 11:46:30 · 82 阅读 · 0 评论