随笔分类 - LeetCode
摘要:LeetCode:移动零【283】 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 说明: 题目分析 黑色指针表示循环过程,即从头到尾。蓝色指针表示要填的第N个数。 黑色指针一直走,遇到非0的就将它填到N位置(初始为0,每次填写后递增
阅读全文
摘要:LeeCode:两数之和【1】 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 题目分析 暴力解法 遍历所有数据对,判断是否等于 target,时间复杂度度 O(n^2)。 双索引对撞 先排序后,后使用双
阅读全文
摘要:LeetCode:零钱兑换【322】【DP】 题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 示例 2: 说明:你可以认为每种硬币的数量是无限的。 题目分析 很
阅读全文
摘要:LeetCode:完全平方数【279】【DP】 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 示例 2: 题目分析 动态规划真的是笔试过程中必不可少的题型。 如果我们想知道n=15的方
阅读全文
摘要:LeetCode:加油站【134】 题目描述 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,
阅读全文
摘要:LeetCode:存在重复元素【217】 题目描述 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 示例 2: 示例 3: 题目分析 对于数据结构HashSet, 我们首先需要知道的是Hash
阅读全文
摘要:LeetCode:快乐数【202】 题目描述 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 输入:
阅读全文
摘要:LeetCode:字符串的排列【567】 题目描述 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。 换句话说,第一个字符串的排列之一是第二个字符串的子串。 示例1: 示例2: 注意: 题目分析 1.这道题,我们用到的算法是滑动窗口,思路大体是这样的: 首先字符串s1
阅读全文
摘要:LeetCode:乘法表中的第K小的数【668】 题目描述 几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗? 给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。 例 1: 例 2: 注意: 题目分析 1.直观思路:首先生成乘法表,将所有
阅读全文
摘要:LeetCode:范围求和||【598】 题目描述 给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。 操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M
阅读全文
摘要:LeetCode:删除排序链表中的重复元素【83】 题目描述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 给定一个排序链表,删除所有重复的元素,使得每个元
阅读全文
摘要:LeetCode:加一【66】 题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数
阅读全文
摘要:LeetCode:区域和检索【303】 题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 说明: 题目分析 sums[i] = nums[0] + nums[1] + … + nums[i] sumRange(i, j
阅读全文
摘要:LeetCode:汇总区间【228】 题目描述 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2","4->5","7"] 解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。 示例 2: 输入:
阅读全文
摘要:LeetCode:三个数的最大乘积【628】 题目描述 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是
阅读全文
摘要:LeetCode:最少移动次数使得数组元素相等||【462】 题目描述 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。 例如: 输入: [1,2,3] 输出: 2 说明: 只有两个动作是必要的(记得每一
阅读全文
摘要:LeetCode:寻找重复数【287】 题目描述 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [
阅读全文
摘要:LeetCode:字母异位词分组【16】 题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate","eat","tea"], [
阅读全文
摘要:LeetCode:算法特辑——二分搜索 算法模板——基础 算法模板——返回排序数组中某值的上下边界 图像描述 算法描述 L-35 搜索插入位置 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元
阅读全文
摘要:LeetCode:移除K位数字【402】 题目描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 示例 2 : 示例 3 : 题目分析
阅读全文

浙公网安备 33010602011771号