
leecode
looklight
这个作者很懒,什么都没留下…
展开
-
LeetCode 战队赛有一起报名的吗
原创 2021-04-06 12:20:39 · 131 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], ...原创 2021-04-05 18:11:17 · 104 阅读 · 0 评论 -
207. 课程表 LeetCode
你这个学期必须选修 numCourse 门课程,记为0到numCourse-1 。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: ...原创 2020-08-04 08:24:25 · 191 阅读 · 0 评论 -
632. 最小区间
你有k个升序排列的整数数组。找到一个最小区间,使得k个列表中的每个列表至少有一个数包含在其中。我们定义如果b-a < d-c或者在b-a == d-c时a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出: [20,24]解释:列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2:[0, 9, 12, 20],...原创 2020-08-01 14:08:14 · 364 阅读 · 0 评论 -
面试题 16.01. 交换数字
编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。示例:输入: numbers = [1,2]输出: [2,1]提示:numbers.length == 2通过次数9,019提交次数10,909来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-numbers-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution {public:原创 2020-07-31 16:53:44 · 207 阅读 · 0 评论 -
LCP 06. 拿硬币
桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例 1:输入:[4,2,1]输出:4解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。示例 2:输入:[2,3,10]输出:8限制:1 <= n <= 41 <= coins[i] <= 10通过次数13,482提交次数16,366来源:力扣原创 2020-07-25 19:11:38 · 167 阅读 · 0 评论 -
64. 最小路径和 Leetcode 最好的dp解法(法2)
给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。通过次数120,808提交次数179,671来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-path-sum著作权归领扣网络所有。商...原创 2020-07-24 10:23:56 · 158 阅读 · 0 评论 -
1480. 一维数组的动态和 巧妙解法
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1.原创 2020-07-22 20:38:41 · 436 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0注意:本题与主站 154 题相同:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-i...原创 2020-07-22 10:46:52 · 119 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组 哈希算法 双指针
给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, ...原创 2020-07-20 21:10:07 · 146 阅读 · 0 评论 -
206. 反转链表 递归解法
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?通过次数283,901提交次数406,363在真实的面试中遇到过这道题?是否来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。原创 2020-07-20 12:03:44 · 227 阅读 · 0 评论 -
206. 反转链表 迭代法
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?通过次数283,901提交次数406,363来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处原创 2020-07-20 10:48:54 · 265 阅读 · 0 评论 -
877. 石子游戏
亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回true,当李赢得比赛时返回false。示例:输入:[5,3,4,5]输出:true解释:亚历克斯先...原创 2020-07-11 22:00:05 · 246 阅读 · 0 评论 -
349. 两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。通过次数77,339提交次数110,907来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/inters..原创 2020-07-11 12:08:10 · 294 阅读 · 0 评论 -
Leecode 559. N叉树的最大深度
给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个3叉树:我们应返回其最大深度,3。说明:树的深度不会超过1000。 树的节点总不会超过5000。通过次数26,185提交次数37,551解析: 想到了两个方法,1、 DFS 递归遍历 2、BFS 层次遍历对于深度优先:/*// Definition for a N...原创 2020-07-06 11:11:25 · 156 阅读 · 0 评论 -
237. 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1输出: [4,5,9]解释: 给定你链表中...原创 2020-06-28 17:58:43 · 3358 阅读 · 1 评论 -
238. 除自身以外数组的乘积
给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分...原创 2020-06-28 17:51:46 · 2605 阅读 · 0 评论 -
面试题 16.07. 最大数值
原创 2020-06-07 01:40:42 · 170 阅读 · 0 评论 -
leeCode 面试题05. 替换空格 最简单方法
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000class Solution {public: string replaceSpace(string s ) { for(int pos= s.find(" ");pos!=-1;){ ...原创 2020-06-04 23:43:25 · 327 阅读 · 0 评论 -
1464. 数组中两元素的最大乘积
给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。示例 1:输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12 。示例 2:输入:nums = [1,5,4,5]输出:16解释:选择下标 i=1...原创 2020-06-02 14:25:20 · 365 阅读 · 0 评论 -
面试题64. 求1+2+…+n
求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出:6示例 2:输入: n = 9输出:45限制:1 <= n<= 10000通过次数29,373提交次数34,275题解:使用等差数列求和公式: (首项+末项)乘 项数 除以 2,翻译成字母表达式: (1+n)*n/2仔细看上面表达式的值 =(n+n^2)/2扩大...原创 2020-06-02 11:08:40 · 313 阅读 · 0 评论