自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 课程表

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

2020-05-17 10:46:06 118

原创 课程表2

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

2020-05-17 10:41:50 78

原创 二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1: 输入: root = [3,5,1,6...

2020-05-02 09:51:22 138

原创 二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路: 分别求出左右子树的深度,比较两者的大小,便可求出最大深度。 /** * Definition for a binary tree node. * public...

2020-05-02 09:00:05 73

原创 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 思路: 递归实现 /** * Definition for a binary tree node. * public class TreeNode { * public int val; * pu...

2020-04-25 10:23:07 64

原创 相同的树

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

2020-04-25 09:53:01 69

原创 格雷编码

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 示例 1: 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2 对于给定的 n,其格雷编码序列并不唯一。 例如,[0,2,3,1] 也是一个有效的格雷编码序列。 00 - 0 10...

2020-04-20 16:00:34 109

原创 子集

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路:运用位运算 class Solution { public: vector<vector<int>&...

2020-04-20 10:50:01 80

原创 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 运用异或,aa=0;0b=1; class Solution { public: int singleNumb...

2020-04-12 18:43:45 47

原创 无重复字符最长子串

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

2020-04-12 18:37:49 46

原创 反转字符串

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

2020-04-06 16:56:48 50

原创 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 不妨先假设strs[0]为公共前缀,之后遍历1-strs.size()的字符串,判断是否含有lst,如果不...

2020-04-06 16:43:26 60

原创 设计循环双端队列

设计实现双端队列。 你的实现需要支持以下操作: MyCircularDeque(k):构造函数,双端队列的大小为k。 insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。 insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。 deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。 deleteLas...

2020-03-29 16:01:10 68

原创 滑动窗口最大值

题目: 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 class Solution { public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { ...

2020-03-29 15:54:48 56

原创 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 public class Solution { public int Reverse(int x) { long result=0; while(x!=...

2020-03-29 15:38:28 50

原创 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false class Solu...

2020-03-22 10:34:58 57

原创 最小栈

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

2020-03-22 10:26:13 52

原创 逆波兰表达式求值

根据逆波兰表示法,求表达式的值。 示例 1: 输入: [“2”, “1”, “+”, “3”, “*”] 输出: 9 解释: ((2 + 1) * 3) = 9 示例 2: 输入: [“4”, “13”, “5”, “/”, “+”] 输出: 6 解释: (4 + (13 / 5)) = 6 示例 3: 输入: [“10”, “6”, “9”, “3”, “+”, “-11”, “", “/”, ...

2020-03-22 10:16:01 58

原创 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 public class Solution { public ListNode MergeTwoLists(ListNode l1, ListNode l2)...

2020-03-15 15:16:55 55

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

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 public class Solution { public ListNode DeleteDuplicates(ListNode head) { ...

2020-03-15 14:59:29 55

原创 环形链表

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

2020-03-15 14:53:12 41

原创 猜数

随机从1到100中得到一个数,请你猜一下。 using System; namespace ConsoleApp3 { class Program { static void Main(string[] args) { Random rdm = new Random(); int guess = rd...

2020-03-09 19:22:29 63

原创 买卖股票的最佳时期2

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 class Solution { public: int maxProfit(vector<int>& prices) { if(pr...

2020-03-09 18:01:08 58

原创 买股票的最佳时期

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的 时候卖出,最大利润 = 6-1 = 5 。 ...

2020-02-29 19:25:47 56

原创 最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 代码如下: class Solution { public: int maxSubArray(vector<int>& nums)...

2020-02-29 19:19:08 38

原创 合并两个有序数组

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入:nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,...

2020-02-29 19:13:45 53

原创 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 。 代码如下: clas...

2020-02-23 12:03:52 31

原创 移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为...

2020-02-23 11:39:43 36

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

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不用使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。 代码如下: class Solutijon{ public: int removeDuplicates(vector<int>& nums) { if(nums.size...

2020-02-23 11:10:42 38

原创 两数之和

#include<iostream> int main() { int nums[4]={2,4,6,7}; int target=10; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { if((nums[i]+nums[j]==target)&&i<j) { printf("[%d,%d]\n",i,j);...

2020-02-18 10:54:27 48

原创 python的模块

一、模块就是程序。 二、命名空间,如hello.hi() 三、导入模块 1: import 模块名 模块可以导入其他模块。习惯上但不要求把所以import语句放在模块的开头。 2 、from 模块名 import 函数名 注意通常情况下从一个模块或者包内调入 * 的做法是不太被接受的, 因为这通常会导致代码的可读性很差。不过,在交互式编译器中为了节省打字可以这么用。 3、import ...

2019-11-05 19:15:35 32

原创 python的魔法方法

1、魔法方法总是被双下划线包围,例如__init__ 2、魔法方法的“魔力”体现在他们总能够在适当的时候被自动调用。 3常用的魔法方法: 析构方法__ del__:用于销毁Python对象——在任何Python对象将要被系统回收之时,系统都会自动调用该对象的__ del__()方法 new(cis[, …]): 实例化对象时第一个被调用的方法,其参数直接传递给__init__方法处理。我们一般不会...

2019-11-03 10:35:19 60

原创 python的类和对象

一、类 1、类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 2、类的定义 使用class。类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。 3、类的方法 在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例...

2019-11-01 16:57:35 113

原创 python的else和with语句

一、else语句 1、if 循环使用 else 语句。if-elif-else语句。 2、while 循环使用 else 语句,在 while … else 在条件语句为 false 时执行 else 的语句块。 3、 for循环中也可以使用else语句。如果存在break语句,则直接结束循环,不执行else子句,这与while循环一致。 4、在异常处理中可以与try语句使用,在没有任何异常时使...

2019-10-31 10:39:14 123

原创 python的异常处理

一、异常处理 1、try except语句 如果执行try语句时没有异常发生,则忽略except子句,try子句执行后结束。 如果发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。 二、抛出异常 1、Py...

2019-10-30 15:26:30 62

原创 python的文件和文件系统

一、文件 1、Python中使用 open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 open() 函数常用形式是接收两个参数:文件名(file)和模式(mode) 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。 2、mode参数有 t 文本模式 (默认)。 x 写模式,...

2019-10-28 18:48:56 64

原创 Python3 字典与集合

一、字典 1、字典是另一种可变容器模型,且可存储任意类型对象。字典的每个健对用冒号 (???? 分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 2、需要注意的是,键必须是唯一的、不可变的,但值则不必。不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。 3、向字典添加...

2019-10-27 10:13:56 108

原创 Python3 函数和lambda

一、函数 1、函数的定义 定义函数需以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。 2、函数的调用 一个函数的基...

2019-10-25 20:13:45 126

原创 python3的字符串和序列

斜体样式 一、字符串 1、字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。在python中单字符也作为一个字符串使用。 2、字符串运算符有不同的用处,运用"+"可进行字符串间的连接,运用()可重复输出字符串,[ : ]可用于截取字符串中的一部分,遵循左闭右开原则,例如str[0,2] 是不包含第 3 个字符的,in成员运算符表示如果字符串中包含给定的字符...

2019-10-24 20:18:06 138

原创 Python3 列表和元组

一、Python3 列表 1、序列是Python中最基本的数据结构,Python有6个序列的内置类型,元组和列表是其中最常见的。 2、列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。 3、列表索引与字符串的索引一样,索引从0开始,列表也可以进行截取、组合等。 4、与元组不同,列表可以使用append()方法...

2019-10-22 17:00:23 121

空空如也

空空如也

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

TA关注的人

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