Leetcode
han_jan
计算机视觉、Re-ID、深度学习、python
展开
-
Leetcode-21. Merge Two Sorted Lists
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4先建立一个头节点指针head,比较两个list大小,将小的赋给head,然后接着比较。两个指针p1 p2不断往下滚动,取小的给p->next当其...原创 2018-08-04 20:08:53 · 93 阅读 · 0 评论 -
Leetcode-278. 第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...原创 2018-08-07 17:50:32 · 150 阅读 · 0 评论 -
Leetcode-349. 两个数组的交集
给定两个数组,写一个函数来计算它们的交集。例子: 给定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].提示:每个在结果中的元素必定是唯一的。 我们可以不考虑输出结果的顺序。解答: 先将两个数组从小到大排序,然后以短的数组为基准进行遍历,使用一个指针ptr指向>=short_array[i]的第一个数,若两者相等,则存入结果中(当...原创 2018-08-08 00:16:08 · 155 阅读 · 0 评论 -
Leetcode-20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...原创 2018-08-08 00:31:49 · 128 阅读 · 0 评论 -
Leetcode-367. 有效的完全平方数
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。注意:不要使用任何内置的库函数,如 sqrt。示例 1:输入: 16输出: True 示例 2:输入: 14输出: False解答:class Solution {public: bool isPerfectSquare(int n...原创 2018-08-08 09:59:50 · 261 阅读 · 0 评论 -
Leetcode-852. 山脉数组的峰顶索引
我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A...原创 2018-08-08 10:22:52 · 266 阅读 · 0 评论 -
Leetcode-350. 两个数组的交集 II
给定两个数组,写一个方法来计算它们的交集。例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。跟进:如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多,哪种...原创 2018-08-08 10:28:58 · 151 阅读 · 0 评论 -
Leetcode-475. 供暖器
冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径。所以,你的输入将会是房屋和供暖器的位置。你将输出供暖器的最小加热半径。说明:给出的房屋和供暖器的数目是非负数且不会超过 25000。 给出的房屋和供暖器的位置均是非负数且不会超过10^9。 只要房屋位于供暖器的半径内(包括在...原创 2018-08-08 14:04:37 · 729 阅读 · 0 评论 -
Leetcode-374. 猜数字大小
我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了!示例:n = 10, 我选择 6.返回...原创 2018-08-08 14:24:18 · 548 阅读 · 0 评论 -
Leetcode-744. 寻找比目标字母大的最小字母
给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。数组里字母的顺序是循环的。举个例子,如果目标字母target = 'z' 并且有序数组为 letters = ['a', 'b'],则答案返回 'a'。示例:输入:letters = ["c", "f", "j"]target = "a"输出: "c"输入:...原创 2018-08-08 15:03:28 · 320 阅读 · 0 评论 -
Leetcode-二分查找
给定一个 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,12...原创 2018-08-08 15:11:48 · 119 阅读 · 0 评论 -
Leetcode-441. 排列硬币
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤...原创 2018-08-08 15:23:38 · 134 阅读 · 0 评论 -
Leetcode-717. 1比特与2比特字符
有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例 1:输入: bits = [1, 0, 0]输出: True解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入: ...原创 2018-09-03 09:04:33 · 150 阅读 · 0 评论 -
Leetcode-102. 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。示例:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解答:使用队列/** * Definition for ...原创 2019-02-11 11:03:50 · 137 阅读 · 0 评论 -
Leetcode-104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解答:/** * Definition for a binary tr...原创 2019-02-11 17:36:33 · 143 阅读 · 0 评论 -
Leetcode-167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15],...原创 2018-08-07 16:32:27 · 104 阅读 · 0 评论 -
Leetcode-69. x 的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解答:注意,如果mid*mid的话会超出in...原创 2018-08-07 16:11:38 · 105 阅读 · 0 评论 -
Leetcode-83 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3比较简单,代码如下:/** * Definition for singly-linked list. * struct ListN...原创 2018-08-04 21:21:26 · 88 阅读 · 0 评论 -
Leetcode-141. 环形链表
题目描述给定一个链表,判断链表中是否有环。解答快慢指针的应用,非常巧妙:快指针每次移两个,慢指针每次移一个,若有环的话两者必能相遇(即两者相等)代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Lis...原创 2018-08-04 21:36:01 · 99 阅读 · 0 评论 -
Leetcode-160. 相交链表
题目描述编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。 注意:如...原创 2018-08-05 13:15:59 · 206 阅读 · 0 评论 -
Leetcode-203. 删除链表中的节点
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解答:考察基本的链表的删除操作。/** * Definition for singly-linked list. * struct ListNode { * ...原创 2018-08-05 13:47:41 · 232 阅读 · 0 评论 -
Leetcode-206. 反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 方法一:简单粗暴,先遍历一遍,存在数组中,再新建一个单链表,赋值给新链表/** * Definition for singly-...原创 2018-08-05 17:02:24 · 90 阅读 · 0 评论 -
Leetcode-234. 回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解答存起来,再判断是否是回文,O(1) 空间复杂度没有解决,但是时间复杂度为 O(n)/** * Definition for si...原创 2018-08-05 17:18:24 · 138 阅读 · 0 评论 -
Leetcode-237. 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之...原创 2018-08-05 17:29:07 · 99 阅读 · 0 评论 -
Leetcode-876. 链表的中间结点
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans...原创 2018-08-05 21:36:36 · 525 阅读 · 0 评论 -
Leetcode-707. 设计链表
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1...原创 2018-08-05 22:57:00 · 4699 阅读 · 2 评论 -
Leetcode-53. 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解答:动态规划,当sum+num[i]<num[i...原创 2018-08-06 19:29:23 · 100 阅读 · 0 评论 -
Leetcode-121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2018-08-07 11:10:29 · 136 阅读 · 0 评论 -
Leetcode-198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...原创 2018-08-07 12:00:11 · 84 阅读 · 0 评论 -
Leetcode-303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数...原创 2018-08-07 13:25:45 · 435 阅读 · 0 评论 -
Leetcode-35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], ...原创 2018-08-07 13:58:49 · 159 阅读 · 0 评论 -
Leetcode-39. 组合总和
给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2019-09-20 19:50:17 · 133 阅读 · 0 评论