![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
一学子
北京建筑大学在校生
展开
-
leetcode每日一题—60. 第k个排列
60. 第k个排列给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: "213"示例 2:输入: n = 4, k = 9输出: "2314"来源:力扣原创 2020-09-05 21:19:09 · 335 阅读 · 0 评论 -
leetcode每日一题:表示数值的字符串
剑指 Offer 20. 表示数值的字符串请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof著作权归领扣网络所有。商业转载请原创 2020-09-02 22:24:57 · 112 阅读 · 0 评论 -
leetcode每日一题:841. 钥匙和房间
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 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每原创 2020-08-31 20:44:53 · 524 阅读 · 0 评论 -
8.30leetcode每日一题:557. 反转字符串中的单词 III
557. 反转字符串中的单词 III给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"思路遍历字符串,遇到一个空格,就把空格之前的字符串反转。反转有两种方法(1)构造新的字符串,把原子字符串逆序保存;(2)原地交换子字符串的首尾,然后往中间靠拢。代码方法一:构造新的字符串class Solution {publi原创 2020-08-30 22:33:59 · 92 阅读 · 0 评论 -
leetcode每日一题657. 机器人能否返回原点
657. 机器人能否返回原点在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。来原创 2020-08-28 16:07:23 · 254 阅读 · 0 评论 -
leetcode8.27重新安排行程
给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例 1:输入: [["M原创 2020-08-27 14:39:18 · 125 阅读 · 0 评论 -
leetcode每日一题:309. 最佳买卖股票时机含冷冻期
309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]来源:力扣(LeetCode)参考链接:ht原创 2020-07-10 15:40:40 · 177 阅读 · 0 评论 -
leetcode每日一题:108. 将有序数组转换为二叉搜索树
108. 将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5来源:力扣(LeetCode)链接:https://leetcode原创 2020-07-03 17:15:51 · 120 阅读 · 0 评论 -
leetcode每日一题:718. 最长重复子数组
718. 最长重复子数组给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释: 长度最长的公共子数组是 [3, 2, 1]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray添加链接描述思路方法一:暴力法1 将A当作参考,枚举B中每一个元素,寻找A中原创 2020-07-01 21:41:27 · 162 阅读 · 0 评论 -
leetcode每日一题:剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","delet原创 2020-06-30 09:20:42 · 113 阅读 · 0 评论 -
leercode每日一题:215. 数组中的第K个最大元素
215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array思路首先想到的原创 2020-06-29 14:34:06 · 127 阅读 · 0 评论 -
leetcode每日一题-209. 长度最小的子数组
209. 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum思路方法一:原创 2020-06-28 11:00:14 · 177 阅读 · 0 评论 -
leetcode每日一题:139. 单词拆分
139. 单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple",原创 2020-06-25 10:35:25 · 502 阅读 · 0 评论 -
leetcode刷题-面试题 16.18. 模式匹配
面试题 16.18. 模式匹配你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。示例 1:输入: pattern = "abba", value = "dogcatc原创 2020-06-22 17:26:14 · 172 阅读 · 0 评论 -
leetcode刷题-面试题46. 把数字翻译成字符串
面试题46. 把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"来源:力扣(LeetCode)链接:https://leetcode-cn.co原创 2020-06-09 16:17:47 · 115 阅读 · 0 评论 -
leetcod-990. 等式方程的可满足性
990. 等式方程的可满足性给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例 1:输入:["a==b","b!=a"]输出:false解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,但无法满足第二个原创 2020-06-08 10:09:29 · 108 阅读 · 0 评论 -
leetcode刷题-126. 单词接龙 II
126. 单词接龙 II给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入:begi原创 2020-06-07 17:36:57 · 178 阅读 · 0 评论 -
leetcode刷题-128. 最长连续序列
128. 最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-consecutive-sequence思路:需要找出连续的,所以我们需要遍历数组,查找每个数字的后续数字是否存在,一旦不存在,查原创 2020-06-06 21:29:48 · 180 阅读 · 0 评论 -
leetcode刷题-面试题29. 顺时针打印矩阵
面试题29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu原创 2020-06-05 11:02:19 · 141 阅读 · 0 评论 -
leetcode刷题-837. 新21点
837. 新21点爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例 1:输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,然后停止。示例 2:输入:原创 2020-06-03 11:20:49 · 99 阅读 · 0 评论 -
leetcode刷题-面试题64. 求1+2+…+n
面试题64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6限制:1 <= n <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qiu-12n-lcof思路:方法一:使用加减法,不能使用循环,使用递归。函数依次返回1--n或者n--1,然后累加起来。很容易原创 2020-06-02 10:51:03 · 156 阅读 · 0 评论 -
leetcode刷题- 1431. 拥有最多糖果的孩子
1431. 拥有最多糖果的孩子给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子原创 2020-06-01 11:28:40 · 185 阅读 · 0 评论 -
leetcode刷题-101. 对称二叉树
101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree思路:根节点原创 2020-05-31 10:17:57 · 120 阅读 · 0 评论 -
leetcode刷题-84. 柱状图中最大的矩形
84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-re原创 2020-05-30 16:25:44 · 342 阅读 · 0 评论 -
leetcode刷题-198. 打家劫舍
198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。原创 2020-05-29 09:36:52 · 148 阅读 · 0 评论 -
leetcode刷题-394. 字符串解码
394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例:s = "3[a]2[bc]", 返回 "aaabcbc".s = "3原创 2020-05-28 20:49:34 · 146 阅读 · 0 评论 -
leetcode每日一题-974. 和可被 K 整除的子数组
974. 和可被 K 整除的子数组给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro原创 2020-05-27 15:40:49 · 290 阅读 · 0 评论 -
leetcode刷题--寻找重复数
287.寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-the-duplicate-number方法一:二分查找数字都在[1,n]之间,至少包原创 2020-05-26 10:46:02 · 467 阅读 · 0 评论 -
leetcode刷题-146. LRU缓存机制
146. LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。来源:力原创 2020-05-25 11:03:37 · 165 阅读 · 0 评论 -
76. 最小覆盖子串
leetcode每日一题:76. 最小覆盖子串给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:来源:力扣(LeetCode)输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"思路:双指针,滑动窗口,右指针右移,当窗口内字符串包含T字符串,左指针收缩左移,直到滑动窗口不满足要求,记下此时满足要求最小长度字符串,然后右指针右移,循环上述步骤,右指针到头结束,找到最小长度,左指针最大下标,然后截取即可。如何判断滑原创 2020-05-23 12:13:31 · 146 阅读 · 0 评论 -
leetcode刷题—260.只出现一次的数字III
260.只出现一次的数字III给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。来源:力扣(LeetCode)示例 :输入: [1,2,1,3,2,5]输出: [3,5]解决方案:异或与位运算相同数字异或操作为零,对所有数字异或操作,得到出现一次的数字的异或值,用mask,然后mask&(-mask)得到mask最后一个1的位置,是两个数字其中一个的,根据这个差异把所有数字分为两部分进行异或,最后得到两个只出现一次的数字。原创 2020-05-22 17:44:34 · 172 阅读 · 0 评论 -
leetcodes刷题-105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。(来源leetcode)注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7思路:递归左子树与右子树。举一个长点的例子preorder = [3, 9, 8, 5, 4, 10, 20, 15, 7]原创 2020-05-22 11:23:51 · 112 阅读 · 0 评论 -
leetcode刷题——5.寻找最长回文字串
寻找最长回文字串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。方法一:中心扩展法,例如:baab中aa为回文子串,用p[i,j]表示,那s[i-1]==s[j+1],所以p[i-1,j+1]也为回文字串,中心扩展法考虑奇数串,偶数串,所以要判断两部分。代码如下:class Solution {public: //确定回文字串左右端点的位置 //param原创 2020-05-21 20:25:14 · 330 阅读 · 0 评论 -
leetcode刷题-1371-每个元音包含偶数次的最长字符串
1371 每个元音包含偶数次的最长字符串给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。示例1:s = “eleetminicoworep”输出: 13思路:1)遍历所有子字符串;超时2)每一个字符串就是一个区间,区间状态可以用前缀和,用pre[i][k]记录第i个字符串之前第k个元音的个数,[j,i] 字符串的某个元音的个数就是pre[i][k]-pre[j-1][k]。判断每个元音是原创 2020-05-20 18:13:50 · 211 阅读 · 0 评论 -
leetcode刷题—验证回文字符串II
验证回文字符串给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例:aba trueabca trueabcda false思路:使用双指针,一个指针start从前往后遍历,一个指针end从后往前遍历,如果不一样,start+1或者end-1,判断两个字字符串是否为回文字符串,如果有一个是,返回true;代码及注释:C++:calss Solution{ //判断一个字符串是否为回文字符串 //param s 源字符串 //param start 待判别字符串原创 2020-05-19 19:05:07 · 148 阅读 · 0 评论 -
leetcode每日一题-210课程表II
210课程表II现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]] 输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺转载 2020-05-17 16:20:06 · 607 阅读 · 0 评论 -
leetcode每日一题-K个一组反转链表
K个一组反转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5代码及注释:class Solution{public: //反原创 2020-05-16 21:27:01 · 237 阅读 · 0 评论 -
leetcode每日一题-560. 和为K的子数组
560. 和为K的子数组给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。举例输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。思路(参考题解中@天使爆破组):暴力解法:枚举所有子数组,i为子数组开端,j为子数组结束,累计nums[i]+... +nums[j]=k?,代码如下:int count =0;for(int i = 0;i < nums.size();++i){ for(int原创 2020-05-15 20:53:18 · 154 阅读 · 0 评论 -
leetcode刷题-缺失数字
缺失数字给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例:输入: [3,0,1]输出: 2思路:(1)数学方法计算0.1.2.3...n的和,减去序列的每一项,0-n的数学和为n*(n+1)/2。但是这样容易导致溢出,参考题解中@Zrzr,一边加一边减,防止溢出。或者采用unsigned long(0-2^64-1)防止溢出(参考@稳中求胜)(具体这篇博客)代码: public int missingNumber(in转载 2020-05-14 18:35:02 · 127 阅读 · 0 评论 -
leetcode 每日一题- 找到序列中只出现一次的数
找到序列中只出现一次的数找到序列中只出现一次的数,其他数都出现两次。例如[0,2,2,4,0,1,1],只出现一次的数为4。思路:采用异或^运算(xor),数值操作结果相同为0,不同为1。代码如下:class Solution {public: int singleNumber(vector<int>& nums) { int ret = 0; for (auto e: nums) ret ^= e; return re原创 2020-05-14 17:59:50 · 744 阅读 · 0 评论