LeetCode
迷你小龙虾
这个作者很懒,什么都没留下…
展开
-
剑指offer 19-1015
树的子结构输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)基本思路是通过两个函数递归实现,第一个函数递归历遍整个a树,第二个函数判断tree1是否为tree2的子树class Solution: def HasSubtree(self, pRoot1, pRoot2): # write code here ...原创 2019-10-16 22:04:01 · 74 阅读 · 0 评论 -
LeetCode19-6-11
最近在准备面试,好久没做算法题了删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.class Solution: def removeNthFromEnd(self, ...原创 2019-06-11 09:25:57 · 56 阅读 · 0 评论 -
LeetCode19-0617
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]#两次历...原创 2019-06-17 19:39:49 · 155 阅读 · 0 评论 -
LeetCode19-0707
字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]class Solution: def groupAnagrams(self...原创 2019-07-07 23:14:23 · 94 阅读 · 0 评论 -
LeetCode19-0624
两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]class Solution: def intersect(self, nums1: List[int...原创 2019-06-24 21:20:05 · 71 阅读 · 0 评论 -
LeetCode19-0713
有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。class Solution: def isValidSudoku(self, board: L...原创 2019-07-14 18:03:36 · 81 阅读 · 0 评论 -
LeetCode19-0712
二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,1...原创 2019-07-21 15:04:20 · 99 阅读 · 0 评论 -
19-0926 LeetCode
单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” ...原创 2019-09-26 16:44:03 · 66 阅读 · 0 评论 -
剑指Offer19-0926
从头到尾打印链表输入一个链表,按链表从尾到头的顺序返回一个ArrayList。class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): list=[] if listNode == None: return...原创 2019-09-30 14:11:23 · 75 阅读 · 0 评论 -
剑指Offer 19-1001
二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution: def NumberOf1(self, n): # write code here if n<0: #得到补码形式 n=n&0xffffffff if n>=0...原创 2019-10-01 21:21:10 · 75 阅读 · 0 评论 -
剑指Offer 19-1008
调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution: def reOrderArray(self, array): # write code here odd,even=[],[]...原创 2019-10-08 15:24:24 · 97 阅读 · 0 评论 -
剑指Offer 19-1009
合并两个排序的链表输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。引入第三个链表保存或者可以使用递归,不用引入链表class Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): # write code here tmp=ListNode(0...原创 2019-10-09 11:05:57 · 79 阅读 · 1 评论 -
LeetCode19-0619
两个列表的最小索引和假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:[“Shogun”, “Tapioca Express”, “Burger King”, “KFC”][...原创 2019-06-19 10:07:31 · 100 阅读 · 0 评论 -
LeetCode
841.钥匙和房间有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为...原创 2019-05-12 18:32:46 · 96 阅读 · 0 评论 -
LeetCode
542.01矩阵给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0解答class Solution: def updateMatrix(self, matrix: List[List[int]]) -> List[List[...原创 2019-05-12 16:45:36 · 73 阅读 · 0 评论 -
LeetCode刷题日记19-5-4
有效的括号题目描述:给定一个只包括'(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路基本思路可以考虑:1)初始化栈2)循环字符串3)如果括号为开括号{,[,(,添加到栈4)如果括号为闭括号,判断是否与栈顶括号同类型,若是,pop...原创 2019-05-04 16:17:13 · 105 阅读 · 0 评论 -
LeetCode刷题笔记19-5-8
394.字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 ...原创 2019-05-08 14:56:12 · 159 阅读 · 0 评论 -
LeetCode刷题笔记19-5-5
150.逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括 +,-,*,/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = ...原创 2019-05-05 21:43:24 · 65 阅读 · 0 评论 -
LeetCode刷题笔记19-5-6
目标和给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3...原创 2019-05-06 20:18:17 · 203 阅读 · 0 评论 -
LeetCode19-5-19
探索数组和字符串给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。class Solution: def minSubArrayLen(s...原创 2019-05-19 13:20:56 · 105 阅读 · 0 评论 -
LeetCode刷题笔记19-5-14
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:思路进行一个迭代,当i+j(下标)为偶数是,上行;否则,下行,另外,需要特别关注边界点class Solu...原创 2019-05-14 16:41:54 · 98 阅读 · 0 评论 -
LeetCode刷题笔记19-5-7
232.用栈实现队列使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop()– 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queu...原创 2019-05-07 10:43:04 · 103 阅读 · 0 评论 -
LeetCode刷题笔记19-5-15
54.螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]#没做出来,借鉴了评论区的答案,di,dj的设置,拐点点的判断都十分精妙!class Solution: def...原创 2019-05-15 09:59:11 · 106 阅读 · 0 评论 -
LeetCode19-5-10刷题笔记
733.图像渲染有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个...原创 2019-05-10 15:07:56 · 132 阅读 · 0 评论 -
LeetCode刷题笔记19-5-21
142.环形链表给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node in...原创 2019-05-21 10:41:20 · 83 阅读 · 0 评论 -
LeetCode刷题笔记19-5-16
合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3n...原创 2019-05-16 09:34:13 · 98 阅读 · 0 评论 -
LeetCode刷题日记19-5-3
297.完全平方数题目描述:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路比较简单,利用一个队列+BFS即可解决,但要注意计算...原创 2019-05-03 20:34:51 · 104 阅读 · 0 评论