自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 课程表 II

题目描述 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。 运行实例 示例 1: 输入: 2, [[1,0]] 输出: [0,1] 解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺

2020-05-17 16:18:36 180

原创 课程表

题目描述 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 运行实例 示例 1: 输入: 2, [[1,0]] 输出: true 解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。 示例 2: 输入: 2, [[1,0],[0,1]] 输出:

2020-05-17 12:05:28 361

原创 对称二叉树

题目描述 给定一个二叉树,检查它是否是镜像对称的。 运行示例 二叉树 [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 大...

2020-04-24 21:35:51 127

原创 子集

题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 运行示例 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 大体思路 一位一位的往上叠加,比如对于题目中给的例子[1,2,3]来说,最开始是空集,那么我们现在要处理1,就在空集上加1,为[1],现在...

2020-04-18 18:23:59 142

原创 只出现一次的数字 II

题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 运行示例 输入: [2,2,3,2] 输出: 3 输入: [0,1,0,1,0,1,99] 输出: 99 大体思路 (大佬的思路,日后可以用来回顾) 如果能设计一个状态转换电路,使得一个数出现3次时能自动抵消为0,最后剩下的就是只出现1次的数。 开始设计:一个二进制位只能表示0或者1...

2020-04-18 11:28:12 201

原创 只出现一次的数字

题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 运行示例 输入: [2,2,1] 输出: 1 输入: [4,1,2,1,2] 输出: 4 大体思路 异或 ^按位与 两数相同为0,不同为1 一个数与自己异或会变成0 任何数和0异或不变 异或满足结合律 如 5^2 ^3 ^2 = 2 ^ 2 ^ 5 ^3 所以,将所有数字异或,如果一个...

2020-04-09 23:34:24 86

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

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 运行示例 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 大体思路 我不行了…我写不出来,当最长子串在末尾时检测不到(T-T) 代码实现 class Solution...

2020-04-09 22:45:20 79

原创 反转字符串

题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 运行示例 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 大体思路 从前往后第...

2020-04-05 14:33:28 89

原创 最长公共前缀

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 运行示例 输入: [“flower”,“flow”,“flight”] 输出: “fl” 输入: [“dog”,“racecar”,“car”] 输出: “” 大体思路 当元素个数为0时返回“” 当元素个数为1时返回该元素 元素个数大于1时,将第一个元素与第二个比较,得到公共部分 将得到的公共部分...

2020-04-05 14:07:35 81

原创 整数反转

题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 运行示例 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 大体思路 设a为反转之后的结果(初始值为0),m为x的最后一位数 当x值不为0时,依次取最后一位数m,并去掉末位 a = a * 10 + m得到反转数 其数值范围为 [pow(-2,31), pow(2...

2020-03-29 19:51:33 62

原创 逆波兰表达式求值

题目描述 根据逆波兰表示法,求表达式的值。 运行示例 输入: [“2”, “1”, “+”, “3”, “*”] 输出: 9 解释: ((2 + 1) * 3) = 9 输入: [“4”, “13”, “5”, “/”, “+”] 输出: 6 解释: (4 + (13 / 5)) = 6 大体思路 建立栈,并依次将数字(非运算符)放入栈中 当遇到运算符时,将栈顶元素取出并删除两次,并把两数按顺序...

2020-03-22 13:47:49 203

原创 最小栈

题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 运行示例 MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0)...

2020-03-22 11:53:08 76

原创 有效的括号

题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 运行示例 输入: “()[]{}” 输出: true 输入: “([)]” 输出: false 输入: “{[]}” 输出: true 大体思路 先判断符号个数是否为偶数...

2020-03-22 00:05:55 62

原创 环形链表

题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 运行示例 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例 2: 输入:head = [1,2], pos = 0 ...

2020-03-15 11:27:51 95

原创 删除排序链表中的重复元素

题目简述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 运行示例 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 大体思路 将头节点给temp 如果temp的值与temp.next的值相等,则将temp.next.next放在temp.next处 否...

2020-03-15 10:37:47 85

原创 合并两个有序链表

题目简述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 运行实例 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码实现 class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ...

2020-03-15 09:50:46 69

原创 买卖股票的最佳时机 II

题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 思路 将每两个相邻的数进行比较,并相加每个后一项较大时的差。 代码实现 class Solution { public: int maxProfit(ve...

2020-03-08 14:00:40 77

原创 买卖股票的最佳时机

题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 思路 先定义第一天买的价格int first = prices[0]。 后用if函数与后期价格进行比较,使first为最小的数。 再使利润a=price[i]-first,并用if函数找出最大的...

2020-03-01 13:18:28 114

原创 合并两个有序数组

题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 思路 由于nums1中有足够空间,所以考虑先将nums2中元素加入nums1现有元素之...

2020-03-01 12:43:26 72

原创 最大子序和

题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 思路 从数组的第一个数开始加和。 在加过某一项时,当前和小于0,说明前面负数绝对值较大,使结果变小。 舍弃前面的项,从新的一项开始加。 代码 class Solution { public: int maxSubArray(vector<int>& nums...

2020-03-01 11:58:36 68

原创 两数之和

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { for(int i=0;i<nums.size()-1;i++) for(int j=i+1;j<nums.size();j++) if(nu...

2020-02-22 23:03:14 42

原创 移除元素

public int removeElement(int[] nums, int val) { int a=0; int n = nums.size(); for(int i=0;i<n;i++) { if(nums[i]!=val) { swap...

2020-02-22 23:01:01 55

原创 删除排序数组中的重复项

class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size()==0) { return 0; } int i=0; for(int a=1;a<nu...

2020-02-22 22:47:25 96

空空如也

空空如也

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

TA关注的人

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