自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 路由规划——运输距离的估算

路由规划中的节点间运输距离估算

2022-11-13 22:09:02 712

原创 LeetCode46 全排列

题目给定一个没有重复数字的序列,返回其所有可能的全排列。示例输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]C++代码回溯法class Solution {public: vector<vector<int>> permute(ve...

2018-12-07 22:10:38 67

原创 LeetCode39 组合总和

题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例示例1:输入: candidates = [2,3,6,7], target = 7,所求解集为...

2018-12-07 21:49:43 70

原创 LeetCode40 组合总和II

题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例示例1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:...

2018-12-07 21:47:44 74

原创 LeetCode 平衡二叉树

题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。2. 给定二叉树 [1,2,2,3,3,null,null,4,4] ...

2018-12-06 21:47:26 39

原创 LeetCode108 将有序数组转换为二叉搜索树

题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5...

2018-12-06 21:10:10 47

原创 LeetCode17 电话号码的字母组合

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", &

2018-12-06 20:56:57 39

原创 LeetCode590 N叉树的后序遍历

题目给定一个 N 叉树,返回其节点值的后序遍历。示例例如,给定一个 3叉树 :返回其后序遍历: [5,6,3,2,4,1].说明: 递归法很简单,你可以使用迭代法完成此题吗?C++代码递归法/*// Definition for a Node.class Node {public: int val; vector<Node*> childre...

2018-12-03 21:35:13 50

原创 LeetCode589 N叉树的前序遍历

题目给定一个 N 叉树,返回其节点值的前序遍历。示例例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单,你可以使用迭代法完成此题吗?C++代码递归/*// Definition for a Node.class Node {public: int val; vector<Node*> children...

2018-12-03 20:58:16 43

原创 LeetCode24 两两交换链表中的节点

题目给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换C++代码/** * Definition for singly-linked list. * struct L...

2018-12-03 16:00:34 42

原创 LeetCode23 合并K个排序链表

题目合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例输入:[ 1->4->5, 1->3->4, 2->6]输出:1->1->2->3->4->4->5->6C++代码笨方法:先将所有链表

2018-12-03 15:37:20 40

原创 LeetCode22 括号生成

题目给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。示例例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]C++代码看的网上的答案,递归。左右括号数目相等,均为n。

2018-12-02 16:12:42 45

原创 LeetCode3 无重复字符的最长子串

题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 ...

2018-12-02 15:35:52 45

原创 LeetCode11 盛最多水的容器

题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示...

2018-11-13 21:10:20 43

原创 LeetCode4 两个排序数组的中位数

题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (2 + ...

2018-11-12 20:42:15 55

原创 LeetCode101 对称二叉树

题目给定一个二叉树,检查它是否是镜像对称的。示例例如,二叉树 [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说明:如果你可以运用递归和迭代两种方法解决这...

2018-10-30 22:02:17 54

原创 LeetCode100 相同的树

题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: ...

2018-10-30 21:12:47 49

原创 LeetCode412 Fizz Buzz

题目写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例n = 15,返回:[“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11”,“Fizz”,...

2018-10-26 20:56:44 48

原创 LeetCode405 数字转换为十六进制数

题目给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方...

2018-10-26 20:39:03 61

原创 LeetCode389 找不同

题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例输入:s = “abcd”t = “abcde”输出:e解释:‘e’ 是那个被添加的字母C++代码本来想用set,但是突然想到“abcd”和“aabcd”的输出应该是a,而用set输出会是NULL。所以改为用map<c...

2018-10-26 19:38:23 42

原创 LeetCode415 字符串相加

题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。C++代码主要考虑到进位。设置进位符flagclass Solution {pub...

2018-10-25 22:08:30 37

原创 LeetCode2 两数相加

题目给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807C++代码考虑进位,设置进位符flag。...

2018-10-25 21:38:39 26

原创 LeetCode371 两整数之和

题目不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。示例示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1C++代码采用位运算。class Solution {public: int getSum(int a, int b) { i...

2018-10-25 20:42:40 26

原创 LeetCode383 赎金信

题目给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b”) -> falsecanConstruct(“aa”, “ab”) ->...

2018-10-25 20:13:51 61

原创 LeetCode203 移除链表元素

题目删除链表中等于给定值 val 的所有节点。示例输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5C++代码/** * Definition for singly-linked list. * struct ListNode

2018-10-25 18:59:27 101

原创 LeetCode19 删除链表的倒数第N个节点

题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?C++代码两遍扫描:首先得到链表的长度len,然后扫描到倒数第n位(l

2018-10-24 22:00:16 47

原创 LeetCode12 整数转罗马数

题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...

2018-10-24 21:24:39 41

原创 LeetCode6 Z字形变换

题目将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:“PAHNAPLSIIGYIR”实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例示例 1:输入: s = “PAYPA...

2018-10-23 23:01:29 42

原创 LeetCode350 两个数组j的交集II

题目给定两个数组,编写一个函数来计算它们的交集。示例示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:1.输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。2.我们可以不考虑输出结果的顺序。进阶...

2018-10-23 21:07:51 42

原创 LeetCode349 两个数组的交集

题目给定两个数组,编写一个函数来计算它们的交集。示例示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。C++代码不考虑输出结果,且输出结果不存在重复...

2018-10-23 20:35:22 53

原创 LeetCode345 反转字符串中的元音字母

题目编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”说明:元音字母不包含字母"y"C++代码元音字母:a,e,i,o,u注意题目中没有说大小写需要区分。设一个字符串temp=“aeiouAEIOU",两个指针:left(s的首位)和ri..

2018-10-23 20:23:37 92

原创 LeetCode344 反转字符串

题目编写一个函数,其作用是将输入的字符串反转过来。示例示例 1:输入: “hello”输出: “olleh”示例 2:输入: “A man, a plan, a canal: Panama”输出: “amanaP :lanac a ,nalp a ,nam A”C++代码法1:class Solution {public: string reverseStrin...

2018-10-23 20:10:38 38

原创 LeetCode303 区域和检索-数组不可变

题目给定一个整数数组 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-10-22 21:45:42 38

原创 LeetCode283 移动零

题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例输入: [0,1,0,3,12]输出: [1,3,12,0,0]C++代码先找出nums中0的个数n,然后在nums后插入n个0,再从nums首位开始找出第一个0出现的位置,开始删除n个0.class Solution {public: void moveZeroes(ve...

2018-10-22 21:21:37 36

原创 LeetCode290 单词模式

题目给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。示例示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入:pattern = “abba...

2018-10-22 20:42:41 38

原创 LeetCode278 第一个错误的版本

题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错...

2018-10-22 19:57:25 45

原创 LeetcCode263 丑数

题目编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1.1 是丑数。2.输入不会超过 3...

2018-10-22 19:18:13 40

原创 LeetCode268 缺失数字

题目给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8C++代码1. 法1.暴力破解,时间复杂度O(n)class Solution {public: int missingNumber(ve...

2018-10-21 19:23:16 58

原创 LeetCode258 各位相加

题目给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?C++代码普通方法:在这里插入代码片...

2018-10-21 18:18:27 83

原创 LeetCode231 2的幂

题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: falseC++代码位逻辑运算符的妙用!若一个数为2的幂,则其二进制只有1个1(2^i)。n&(n-1),n-1有点类似于将n的二进制退位(类...

2018-10-21 17:38:37 34

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除