Leetcode刷题笔记
这个专栏的300多道Leetcode题,都是精选高频的面试题,按照这个刷题顺序刷题,你的算法能力将得到一个比较大的提升
Sefr后端
关注我,一起进步
展开
-
3w字解决动态规划-【精选高频面试题】!!
动态规划动态规划方法论(5部曲)了解dp[i]的含义以及i的含义递推公式dp数组初始化确定遍历顺序距离推导dp数组如果代码AC不了那么就检查以下3点:这道题目举例推导状态转移公式了吗?这道题打印日志了吗?打印的日志与我想的是否一样基础题(接下来的题目我只会使用5部曲做题)Leetcode.509.斐波那契数列斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1原创 2021-10-12 10:34:04 · 433 阅读 · 0 评论 -
【精选高频面试题】贪心算法系列
贪心Leetcode.455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1: 输入: g = [1,2,3], s = [1,1] 输出: 1 解释: 你有三个孩子原创 2021-09-30 17:00:57 · 370 阅读 · 0 评论 -
【精选高频面试题】回溯系列:棋盘问题
棋盘问题Leetcode.51.n皇后n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同的解法。1 <=原创 2021-09-26 10:44:03 · 212 阅读 · 0 评论 -
【精选高频面试题】回溯系列:补充问题-递增子序列&&重新安排路程
补充问题-递增子序列Leetcode.491.递增子序列给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例 1:输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示例 2:输入:nums = [4,4,3,2,1]输出原创 2021-09-24 11:23:09 · 199 阅读 · 0 评论 -
【精选高频面试题】回溯系列:子集问题
子集问题Leetcode.78.子集给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10思路原创 2021-09-24 10:24:10 · 80 阅读 · 0 评论 -
【精选高频面试题】回溯系列:分割问题
分割问题Leetcode.131.分割回文串给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]提示:1 <= s.length <= 16s 仅由小写英文字母组成思路:分割的思想与组合的思想差不多。在循环横向遍历的时候,组合是取得a放入原创 2021-09-23 20:50:53 · 136 阅读 · 0 评论 -
【精选高频面试题】回溯系列-组合问题
组合问题Leetcode.77.组合给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]提示:1 <= n <= 201 <= k <= nC++代码class Solution {private:原创 2021-09-23 20:49:17 · 136 阅读 · 0 评论 -
【精选高频面试题】:二叉树的修改与构造
二叉搜索树的修改与构造Leetcode.701.二叉搜索树的插入701. 二叉搜索树中的插入操作 - 力扣(LeetCode) (leetcode-cn.com)给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。输入:root = [4,2,7,1,3], val = 5输出:[原创 2021-09-19 10:17:29 · 152 阅读 · 0 评论 -
【精选高频面试题】:一篇搞懂---求二叉树属性以及公共祖先问题
求二叉树的属性Leetcode.700 二叉搜索树的搜索700. 二叉搜索树中的搜索 - 力扣(LeetCode) (leetcode-cn.com)给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是原创 2021-09-18 12:06:07 · 87 阅读 · 0 评论 -
【精选高频面试题】-二叉树的修改与构造系列
二叉树的修改与构造Leetcode.105.从前序与中序遍历序列构造二叉树105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode) (leetcode-cn.com)给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]思路:这道题的思路为分割数组。我们发现前序遍历中原创 2021-09-15 09:40:05 · 107 阅读 · 0 评论 -
【精选高频面试题】 2w字硬肝-二叉树属性
二叉树属性Leetcode.101.对称二叉树101. 对称二叉树 - 力扣(LeetCode) (leetcode-cn.com)给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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进阶:你可以运用递归和迭代两种方法解决这个问题吗?思路:递归思路:首先我们如何确定这原创 2021-09-13 15:44:21 · 129 阅读 · 0 评论 -
【精选高频面试题】二叉树遍历合集
二叉树二叉树遍历二叉树遍历有两种形式,一种是深度优先遍历,一种是广度优先遍历。深度优先遍历分为三种(前,中,后序遍历)广度优先遍历只有一种:层序遍历。对于深度优先遍历的哪三种方式有两种实现方式一种是递归,一种是迭代。递归代码清晰易懂,但是容易产生栈溢出的风险。在工业项目上一般采用迭代法的深度优先遍历。对于学习二叉树熟练掌握其遍历操作是基础。所以要把自己的遍历方法论确定下来。,自己必须能够手写遍历操作掌握二叉树结构体的手写。struct TreeNode{ TreeNode* left;原创 2021-09-10 09:18:53 · 476 阅读 · 0 评论 -
【精选高频面试题】Leetcode.347.前k个高频元素
Leetcode.347.前k个高频元素347. 前 K 个高频元素 - 力扣(LeetCode) (leetcode-cn.com)给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]思路:首先存取元素的出现次数我们使用unordered_map对元素进行排序我们使用原创 2021-09-06 10:56:30 · 77 阅读 · 0 评论 -
【精选高频面试题】Leetcode.239.滑动窗口的最大值
Leetcode.239.滑动窗口的最大值239. 滑动窗口最大值 - 力扣(LeetCode) (leetcode-cn.com)给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1原创 2021-09-06 10:08:06 · 91 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.150.逆波兰表达式
Leetcode.150.逆波兰表达式150. 逆波兰表达式求值 - 力扣(LeetCode) (leetcode-cn.com)根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = [“2”,“1”,"+",“3”,"*"]输出:9解释:该算式转化为常见的中缀算术表达式为原创 2021-09-05 10:51:14 · 99 阅读 · 0 评论 -
【精选高频面试题】Leetcode.1047.删除字符串中所有相邻重复项
Leetcode.1047.删除字符串中所有相邻重复项1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode) (leetcode-cn.com)给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一原创 2021-09-05 10:04:33 · 96 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.20.有效括号
Leetcode.20.有效括号20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com)给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”原创 2021-09-04 10:37:10 · 131 阅读 · 0 评论 -
【精选高频面试题】Leetcode.225.用双队列实现栈
Leetcode.225.用双队列实现栈225. 用队列实现栈 - 力扣(LeetCode) (leetcode-cn.com)请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。原创 2021-09-04 09:41:56 · 94 阅读 · 0 评论 -
【精选高频面试题】Leetcode.232.用栈实现队列
Leetcode.232.用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/po原创 2021-09-04 09:07:03 · 80 阅读 · 0 评论 -
【精选高频面试题】Leetcode.454.重复的子字符串【KMP】
Leetcode.454.重复的子字符串459. 重复的子字符串 - 力扣(LeetCode) (leetcode-cn.com)给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解释: 可由子字符串 “abc”原创 2021-09-02 08:43:26 · 84 阅读 · 0 评论 -
【精选高频面试题】Leetcode.28.实现strStr()(KMP算法)
Leetcode.28.实现strStr()(KMP算法)28. 实现 strStr() - 力扣(LeetCode) (leetcode-cn.com)实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我原创 2021-09-01 16:00:57 · 80 阅读 · 0 评论 -
【精选高频面试题】Leetcode.151.反转字符串中的单词
Leetcode.151.反转字符串中的单词151. 翻转字符串里的单词 - 力扣(LeetCode) (leetcode-cn.com)给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:输入:s =原创 2021-08-31 16:05:45 · 105 阅读 · 0 评论 -
【精选高频面试题】Leetcode.剑指offer.58-Ⅱ左旋转字符串
Leetcode.剑指offer.58-Ⅱ左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length &l原创 2021-08-31 15:14:25 · 85 阅读 · 0 评论 -
【精选高频面试题】Leetcode.剑指offer.05.替换空格
Leetcode.剑指offer.05.替换空格剑指 Offer 05. 替换空格 - 力扣(LeetCode) (leetcode-cn.com)请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000思路:首先string不是自动扩充的当你以%20替换空格,string必然膨胀,所以我们应该重置其size。然后我们从前往后的遍历并替原创 2021-08-30 10:54:03 · 70 阅读 · 0 评论 -
【精选高频面试题】Leetcode.541反转字符串Ⅱ
Leetcode.541反转字符串Ⅱ541. 反转字符串 II - 力扣(LeetCode) (leetcode-cn.com)给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“b原创 2021-08-30 10:10:09 · 63 阅读 · 0 评论 -
【精选高频面试题】Leetcode.344.反转字符串
Leetcode.344.反转字符串344. 反转字符串 - 力扣(LeetCode) (leetcode-cn.com)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输原创 2021-08-29 08:40:14 · 107 阅读 · 2 评论 -
【精选高频面试题】 Leetcode.18.四数之和
Leetcode.18.四数之和18. 四数之和 - 力扣(LeetCode) (leetcode-cn.com)思路:在三数之和的基础上,添加一个for循环,基本细节都差不多。class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>>res; st原创 2021-08-28 11:11:20 · 87 阅读 · 0 评论 -
【精选高频面试题】Leetcode.15.三数之和
Leetcode.15.三数之和15. 三数之和 - 力扣(LeetCode) (leetcode-cn.com)给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nu原创 2021-08-28 10:35:41 · 93 阅读 · 0 评论 -
【精选高频面试题】Leetcode.383.赎金信
Leetcode.383.赎金信383. 赎金信 - 力扣(LeetCode) (leetcode-cn.com)给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)示例 1:输入:ransom原创 2021-08-28 08:36:54 · 92 阅读 · 0 评论 -
【精选高频面试题】Leetcode.454.四数之和Ⅱ
Leetcode.454.四数之和Ⅱhttps://leetcode-cn.com/problems/4sum-ii/给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A = [原创 2021-08-27 10:44:28 · 69 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.0001.两数之和
Leetcode.0001.两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums =原创 2021-08-27 09:44:10 · 75 阅读 · 2 评论 -
【精选高频面试题】 Leetcode.202.快乐数
Leetcode.202.快乐数https://leetcode-cn.com/problems/happy-number/编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例 1:输入:19输出:true解释:12 + 92原创 2021-08-26 09:02:49 · 127 阅读 · 0 评论 -
【精选高频面试题】Leetcode.1002.查找常用字符
Leetcode.1002.查找常用字符https://leetcode-cn.com/problems/find-common-characters/给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:[“bella”,“label”,“roller”]输出:[“e”,“l”,“l”]示例 2:输原创 2021-08-25 22:12:28 · 75 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.349.两个数组的交集
Leetcode.349.两个数组的交集https://leetcode-cn.com/submissions/detail/210899755/题意:给定两个数组,编写一个函数来计算它们的交集。说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。思路:由于我们不知道交集元素的大小,所以不能采用数组。所以采用unordered_set来存取数组中的元素,存入其中的元素将剔除相同的元素。class Solution {public: vector<int>原创 2021-08-24 22:11:52 · 60 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.242.字母的异位词
Leetcode.242.字母的异位词https://leetcode-cn.com/problems/valid-anagram/submissions/给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false思路:原创 2021-08-23 22:06:26 · 61 阅读 · 0 评论 -
【精选高频面试题】Leetcode.904.水果成篮
Leetcode.904.水果成篮(滑动窗口法)https://leetcode-cn.com/problems/fruit-into-baskets/在一排树中,第 i 棵树产生 tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止原创 2021-08-22 19:33:36 · 148 阅读 · 0 评论 -
【精选高频面试题】 Leetcode.367.有效的完全平方数
Leetcode.367.有效的完全平方数(二分法)https://leetcode-cn.com/problems/valid-perfect-square/给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:falseclass Solution {public: bool原创 2021-08-21 09:31:26 · 67 阅读 · 0 评论 -
【精选高频面试题】Leetcode.69.求x的平方根
Leetcode.69.求x的平方根(二分法)实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。思路:利用二分法寻找0~x中的数使k*k<=x的整数k,就是我们要寻找的平方根class Solution {public: int原创 2021-08-20 22:02:41 · 67 阅读 · 0 评论 -
【精选高频面试题】Leetcode.34.在排序数组中寻找第一个元素和最后一个元素的位置(二分法)
Leetcode.34.在排序数组中寻找第一个元素和最后一个元素的位置(二分法)https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例 1:输入:nums = [5,7,7,8,8,10], tar原创 2021-08-19 20:44:16 · 63 阅读 · 0 评论 -
【精选高频面试题】Leetcode.35.搜索插入位置(二分法)
Leetcode.35.搜索插入位置(二分法)https://leetcode-cn.com/problems/search-insert-position/submissions/给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], tar原创 2021-08-19 20:24:24 · 53 阅读 · 0 评论