自定义博客皮肤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 136

原创 课程表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 82

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

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 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 150

原创 二叉树的最大深度

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

2020-05-02 09:00:05 78

原创 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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 68

原创 相同的树

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

2020-04-25 09:53:01 70

原创 格雷编码

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

2020-04-20 16:00:34 131

原创 子集

给定一组不含重复元素的整数数组 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 82

原创 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 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 48

原创 无重复字符最长子串

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

2020-04-12 18:37:49 50

原创 反转字符串

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

2020-04-06 16:56:48 52

原创 最长公共前缀

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

2020-04-06 16:43:26 62

原创 设计循环双端队列

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

2020-03-29 16:01:10 71

原创 滑动窗口最大值

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

2020-03-29 15:54:48 58

原创 整数反转

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

2020-03-29 15:38:28 52

原创 有效的括号

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

2020-03-22 10:34:58 58

原创 最小栈

设计一个支持 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 58

原创 逆波兰表达式求值

根据逆波兰表示法,求表达式的值。示例 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 60

原创 合并两个有序链表

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

2020-03-15 15:16:55 58

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

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

2020-03-15 14:59:29 58

原创 环形链表

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

2020-03-15 14:53:12 42

原创 猜数

随机从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 65

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

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

2020-03-09 18:01:08 86

原创 买股票的最佳时期

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

2020-02-29 19:25:47 58

原创 最大子序和

给定一个整数数组 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 41

原创 合并两个有序数组

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

2020-02-29 19:13:45 54

原创 两数之和

给定一个整数数组 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 32

原创 移除元素

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

2020-02-23 11:39:43 37

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

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

2020-02-23 11:10:42 40

原创 两数之和

#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 50

原创 python的模块

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

2019-11-05 19:15:35 33

原创 python的魔法方法

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

2019-11-03 10:35:19 62

原创 python的类和对象

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

2019-11-01 16:57:35 118

原创 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 129

原创 python的异常处理

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

2019-10-30 15:26:30 64

原创 python的文件和文件系统

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

2019-10-28 18:48:56 67

原创 Python3 字典与集合

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

2019-10-27 10:13:56 112

原创 Python3 函数和lambda

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

2019-10-25 20:13:45 129

原创 python3的字符串和序列

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

2019-10-24 20:18:06 147

原创 Python3 列表和元组

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

2019-10-22 17:00:23 124

空空如也

空空如也

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

TA关注的人

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