OJ-LintCode
sparksnail
这个作者很懒,什么都没留下…
展开
-
LintCode 33. N-Queens
题目 思路DFS,难点在斜线的判断。 1.当两个点在左上->右下的斜线时,x1−y1==x2−y2x1−y1==x2−y2x_1-y_1 == x_2-y_2 2.当两个点在右上->左下的斜线时,x1+y1==x2+y2x1+y1==x2+y2x_1+y_1 == x_2+y_2代码class Solution: """ @param:...原创 2018-02-16 23:31:26 · 205 阅读 · 0 评论 -
LintCode 99. Reorder List
题目思路用堆栈,反向得到链表的结点。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: ""...原创 2018-02-21 17:21:41 · 188 阅读 · 0 评论 -
LintCode 170. Rotate List
题目思路K有大于链表长度的情况,需要取余处理。代码"""Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None"""class Solution: """ @...原创 2018-02-21 17:44:35 · 187 阅读 · 0 评论 -
LintCode 105. Copy List with Random Pointer
题目思路1.复制结点 2.复制random 3.拆解链表代码"""Definition for singly-linked list with a random pointer.class RandomListNode: def __init__(self, x): self.label = x self.next = Non...原创 2018-02-21 18:19:55 · 219 阅读 · 0 评论 -
LintCode 102. Linked List Cycle
题目思路两个指针同时遍历即可。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: """ ...原创 2018-02-21 21:21:49 · 166 阅读 · 0 评论 -
LintCode 98. Sort List
题目思路归并排序,链表。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: """ ...原创 2018-02-22 14:27:23 · 227 阅读 · 0 评论 -
LintCode 106. Convert Sorted List to Balanced BST
题目思路递归构建左子树和右子树代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = nextDefinition of TreeNode:clas...原创 2018-02-22 14:41:19 · 159 阅读 · 0 评论 -
LintCode 372. Delete Node in the Middle of Singly Linked List
题目思路复制数字即可。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: """ ...原创 2018-02-22 14:49:35 · 183 阅读 · 0 评论 -
LintCode 6. Merge Two Sorted Arrays
题目思路水题,基本技能。代码class Solution: """ @param A: sorted integer array A @param B: sorted integer array B @return: A new sorted integer array """ def mergeSortedArray(s...原创 2018-02-22 15:08:31 · 279 阅读 · 0 评论 -
LintCode 511. Swap Two Nodes in Linked List
题目思路遍历,找到nodeV1和nodeV2,交换即可。 注意noveV1和nodeV2相邻的情况。代码"""Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = None"""c...原创 2018-02-21 17:04:37 · 232 阅读 · 0 评论 -
LintCode 36. Reverse Linked List II
题目思路水题,遍历翻转即可。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: """ ...原创 2018-02-21 16:49:46 · 177 阅读 · 0 评论 -
LintCode 116. Jump Game
题目思路dp,不断更新数组的状态。代码class Solution: """ @param: A: A list of integers @return: A boolean """ def canJump(self, A): # write your code here dp = [False f...原创 2018-02-28 22:04:45 · 254 阅读 · 0 评论 -
LintCode 120. Word Ladder
题目思路在判断字符距离的时候有坑。 假设单词长度为LLL,单词个数为nnn 如果对于每一个单词,遍历list中所有单词,计算距离,时间复杂度为O(n∗L)O(n∗L)O(n*L),在LintCode会超时。 对于每一个单词,遍历每一位的所有26个字母,组成新单词,再判断是否在词表中。词表处理成dict,这样时间复杂度为O(L∗L)O(L∗L)O(L*L),AC。代码...原创 2018-02-17 00:08:58 · 283 阅读 · 0 评论 -
LintCode 121. Word Ladder II
题目 思路1.BFS,找到从end到start的路径,找到每一个单词的层数。 2.DFS,根据每一个单词的层数,按照层数递减的顺序遍历。代码import stringclass Solution: """ @param: start: a string @param: end: a string @param: dict: a ...原创 2018-02-17 02:15:35 · 1300 阅读 · 0 评论 -
LintCode 450. Reverse Nodes in k-Group
题目思路1.使用栈,把K个node入栈,然后按照出栈的顺序重新连接。 2.原地翻转,加一个头结点dummyNode便于操作。代码1"""Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next...原创 2018-02-19 00:29:18 · 167 阅读 · 0 评论 -
LintCode 96. Partition List
题目思路用两个指针,记录下来nmax和pre_nmax结点,之后不断插入即可。代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""...原创 2018-02-19 01:14:10 · 205 阅读 · 0 评论 -
LintCode 165. Merge Two Sorted Lists
题目思路水题代码"""Definition of ListNodeclass ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next"""class Solution: """ @para...原创 2018-02-19 01:22:15 · 316 阅读 · 0 评论 -
LintCode 109. Triangle
题目思路滚动数组代码class Solution: """ @param triangle: a list of lists of integers @return: An integer, minimum path sum """ def minimumTotal(self, triangle): # write...原创 2018-02-28 19:16:29 · 213 阅读 · 0 评论 -
LintCode 110. Minimum Path Sum
题目思路dp,滚动数组代码class Solution: """ @param grid: a list of lists of integers @return: An integer, minimizes the sum of all numbers along its path """ def minPathSum(self, ...原创 2018-02-28 20:37:43 · 225 阅读 · 0 评论 -
LintCode 114. Unique Paths
题目思路dp,滚动数组代码class Solution: """ @param m: positive integer (1 <= m <= 100) @param n: positive integer (1 <= n <= 100) @return: An integer """ def uniqu...原创 2018-02-28 20:45:17 · 241 阅读 · 0 评论 -
LintCode 64. Merge Sorted Array
题目思路从后向前不断插入新值。代码class Solution: """ @param: A: sorted integer array A which has m elements, but size of A is m+n @param: m: An integer @param: B: sorted integer array B wh...原创 2018-02-22 15:25:24 · 223 阅读 · 0 评论 -
LintCode 547. Intersection of Two Arrays
题目思路哈希代码class Solution: """ @param: nums1: an integer array @param: nums2: an integer array @return: an integer array """ def intersection(self, nums1, nums2): ...原创 2018-02-22 15:28:54 · 204 阅读 · 0 评论 -
LintCode 41. Maximum Subarray
题目思路贪心,更新max值代码class Solution: """ @param nums: A list of integers @return: A integer indicate the sum of max subarray """ def maxSubArray(self, nums): # write ...原创 2018-02-22 19:09:57 · 231 阅读 · 0 评论 -
LintCode 59. 3Sum Closest
题目思路双指针。 控制一个数字,变化另外两个数字,使得sum不断接近target。代码class Solution: """ @param numbers: Give an array numbers of n integer @param target: An integer @return: return the sum of the ...原创 2018-02-23 22:32:51 · 223 阅读 · 0 评论 -
LintCode 58. 4Sum
题目思路遍历两个数,然后问题转化为twoSum问题。 ps:python的for循环真是不好用(⊙︿⊙)代码class Solution: """ @param numbers: Give an array @param target: An integer @return: Find all unique quadruplets in...原创 2018-02-23 23:30:31 · 244 阅读 · 0 评论 -
LintCode 31. Partition Array
题目思路双指针,交换数字。代码class Solution: """ @param nums: The integer array you should partition @param k: An integer @return: The index after partition """ def partitionArra...原创 2018-02-24 14:46:30 · 248 阅读 · 0 评论 -
LintCode 5. Kth Largest Element
题目思路双指针,partition,递归代码class Solution: # @param k & A a integer and an array # @return ans a integer def partition(self, k, A, left, right): pivot = left + (right - ...原创 2018-02-24 19:57:32 · 244 阅读 · 0 评论 -
LintCode 373. Partition Array by Odd and Even
题目思路双指针,块排模板代码class Solution: """ @param: nums: an array of integers @return: nothing """ def partitionArray(self, nums): # write your code here i = 0; ...原创 2018-02-24 20:09:02 · 201 阅读 · 0 评论 -
LintCode 144. Interleaving Positive and Negative Numbers
题目思路partition模板,双指针。 先把负数和正数用partition分开,然后交换。代码class Solution: """ @param: A: An integer array. @return: nothing """ def reverse(self, A, i, j): while i <...原创 2018-02-24 21:35:00 · 230 阅读 · 0 评论 -
LintCode 49. Sort Letters by Case
题目思路partition代码class Solution: """ @param: chars: The letter array you should sort by Case @return: nothing """ def sortLetters(self, chars): # write your cod...原创 2018-02-24 21:40:37 · 185 阅读 · 0 评论 -
LintCode 148. Sort Colors
题目思路三个指针i,j,k。i指向0,k指向2,j不断遍历,进行swap操作代码class Solution: """ @param nums: A list of integer which is 0, 1 or 2 @return: nothing """ def sortColors(self, nums): ...原创 2018-02-24 22:26:21 · 207 阅读 · 0 评论 -
LintCode 382. Triangle Count
题目思路三角形判断条件:两个小边之和大于第三边,两个大边之差小于第三边 双指针代码class Solution: """ @param S: A list of integers @return: An integer """ def triangleCount(self, S): # write your code...原创 2018-02-23 22:00:05 · 401 阅读 · 0 评论 -
LintCode 57. 3Sum
题目思路取一个数作为target,变成twoSum问题。代码class Solution: """ @param: numbers: Give an array numbers of n integer @return: Find all unique triplets in the array which gives the sum of zero...原创 2018-02-23 21:18:25 · 234 阅读 · 0 评论 -
LintCode 608. Two Sum - Input array is sorted
题目思路双指针。代码class Solution: """ @param nums: an array of Integer @param target: target = nums[index1] + nums[index2] @return: [index1 + 1, index2 + 1] (index1 < index2) ...原创 2018-02-23 20:17:53 · 164 阅读 · 0 评论 -
LintCode 138. Subarray Sum
题目思路trick。如果0−i0−i0-i的和等于0−j0−j0-j的和,那么i−ji−ji-j的和为0。代码class Solution: """ @param: nums: A list of integers @return: A list of integers includes the index of the first number a...原创 2018-02-22 19:36:34 · 300 阅读 · 0 评论 -
LintCode 139. Subarray Sum Closest
题目思路这个题做的好累o(╥﹏╥)o 定义PrefixSum[i]=A[0]+A[1]+…A[i−1],PrefixSum[0]=0PrefixSum[i]=A[0]+A[1]+…A[i−1],PrefixSum[0]=0PrefixSum[i] = A[0] + A[1] + … A[i - 1], PrefixSum[0] = 0 则Sum(i j)=PrefixSu...原创 2018-02-22 22:13:36 · 430 阅读 · 0 评论 -
LintCode 604. Window Sum
题目思路同向双指针代码class Solution: """ @param nums: a list of integers. @param k: length of window. @return: the sum of the element inside the window at each moving. """ ...原创 2018-02-22 22:52:38 · 370 阅读 · 0 评论 -
LintCode 539. Move Zeroes
题目思路双指针,后面的指针不断替换前面指针所指向的数即可。代码class Solution: """ @param: nums: an integer array @return: """ def moveZeroes(self, nums): # write your code here i =...原创 2018-02-22 23:12:19 · 168 阅读 · 0 评论 -
LintCode 415. Valid Palindrome
题目思路双指针,相向同时遍历。代码class Solution: """ @param s: A string @return: Whether the string is a valid palindrome """ def isPalindrome(self, s): # write your code here...原创 2018-02-23 14:16:11 · 221 阅读 · 0 评论 -
LintCode 8. Rotate String
题目思路三次翻转。代码class Solution: """ @param str: An array of char @param offset: An integer @return: nothing """ def reverse(self, str, s, e): i = s; j = e ...原创 2018-02-23 14:29:15 · 348 阅读 · 0 评论