自定义博客皮肤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)
  • 收藏
  • 关注

原创 课程表||

课程表||· 题目描述:· 思路:· 代码:class Solution { public int[] findOrder(int numCourses, int[][] prerequisites) { if(numCourses==0) { return new int[0]; } HashSet<Integer>[]hash=new HashSet[numCourses];

2020-05-14 09:26:15 269

原创 课程表

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

2020-05-14 09:08:01 226

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

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

2020-05-01 08:09:37 212

原创 二叉树的最大深度

二叉树的最大深度题目描述:思路:这里采用的是迭代的方法,首先判断根节点是否为空,是则返回0,否则分别将左节点和右节点作为根节点进行遍历,每次+1,最后将左右子树得到的大者+1作为返回值.注意:最大值+1是因为max记录的是层数(从0开始)代码:/** * Definition for a binary tree node. * public class TreeNode { *...

2020-04-28 13:05:19 156

原创 对称二叉树

对称二叉树题目描述:思路:借助队列“先进后出”的特点将对称位置的节点顺序入队,再出队,这样得到的就是它们的倒序排列,比较两次结果是否相同。比较的条件是如果都为null,则符合,这时便不再判断后面的条件,而进行下一次迭代;如果其中一个为null或者它们两个的值不相等,则不符合条件,直接返回false;如果遍历完整个二叉树,则返回true。代码:/** * Definition for ...

2020-04-21 11:26:41 93

原创 相同的树

相同的树题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路:首先判断根节点是否都为null,若是则返回true;若只有一个为null,或者它们的值不相等,则返回false。然后采用迭代的方法判断左子树和右子树,如果都满足条件就返回true,否则为false。我的代码:/** * Definition ...

2020-04-21 10:38:34 75

原创 格雷编码

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

2020-04-15 17:10:08 81

原创 子集

子集题目描述:思路:count用来记录要复制的元素数,第一个内部循环的作用是复制子集,第二个内部循环是对后面复制的子集加入当前元素,每次加入一个数字,直至所有数字都添加进去。代码:public class Solution { public IList<IList<int>> Subsets(int[] nums) { IList<...

2020-04-15 16:33:19 95

原创 只出现一次的数字||

只出现一次的数字||题目描述:思路:因为该数组中数字除了出现一次那个数字外,其他数字都出现三次,按位异或显然是不行的,因为都是奇数次,但我们仍然可以用位运算来解决,用一个32位数来统计所有数字在所有位数上出现的次数,那么除了只出现一次的那个数字的位数外,其他位数记录的出现次数都能被3整除,把这些位找出来再与0做或运算即为要找的数字。代码:public class Solution {...

2020-04-15 15:52:49 70

原创 只出现一次的数字

只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路及代码:由于要找的是只出现一次的数字,可以根据按位异或操作符——即对值的二进制格式...

2020-04-07 12:44:47 82

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

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

2020-04-07 11:29:58 136

原创 反转字符串

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

2020-04-02 07:36:15 243

原创 最长公共前缀

最长公共前缀题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母 a-z 。思路和代码:首先判断所给字符串数组...

2020-03-31 17:54:00 129

原创 滑动窗口最大值

滑动窗口最大值题目描述给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7][1 3 -1] -3 5 3 6 7 31 [3 -1 -3...

2020-03-26 13:22:42 102

原创 设计循环双端队列

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

2020-03-25 21:06:35 86

原创 整数反转

整数反转题目描述:将一个 32 位的有符号整数每位上的数字进行反转。注意:32 位的有符号整数其数值范围为 [−231, 231 − 1],如果反转后整数溢出那么就返回 0。示例 1:输入: 135输出: 531示例 2:输入: -16输出: -61示例 3:输入: 320输出: 23思路:采用取余的方法获取个位上的数字,然后加给一个长整型变量,每次循环后32 位有...

2020-03-24 12:09:56 136

原创 逆波兰表达式求值

逆波兰表达式求值题目描述:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。思路:我们以+ - * / 作为开关语句的case条件,遇到运算符,就将其前的两个数字进行相应的运算,若遍历到最后...

2020-03-19 21:53:08 256

原创 最小栈

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

2020-03-18 18:11:19 172

原创 有效的括号

有效的括号题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路:首先对数组进行初步判断,如果为空,则有效;如果数组元素有奇数个,或首元素为右括号,则无效;否则,借助一个栈暂时存放左括号,若遇到右括号且与栈顶元素可配...

2020-03-18 17:38:31 73

原创 环形链表

环形链表题目描述判断给定链表中是否有环思路我用的是哈希表算法,创建一个哈希表用来存储每一个节点的内存地址,当遍历到最后一个节点时,判断该节点的引用是否存在于哈希表中,如果存在则返回true。代码/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode nex...

2020-03-12 10:17:44 72

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

删除排序链表中的重复项题目描述将给定排序链表中的重复项删除,使得每个元素只出现一次。我的思路从头遍历整个链表,借助一个temp指针,如果下一个元素与目前元素相等,就将该元素的指针指向下下个元素,再进行比较,直至最后一个元素结束,返回头指针。我的代码/** * Definition for singly-linked list. * public class ListNode { ...

2020-03-12 09:25:20 118

原创 合并两个有序链表

合并两个有序链表题目描述:给定两个有序链表,拼接两个链表的所有节点将它们合并为一个新的有序链表,并返回。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4我的思路:首先考虑特殊情况,l1或l2链表为空,这样只需返回另一个链表即可,对于普通的两个有序链表,因为有序,所以只需从头结点开始比较,较小的节点...

2020-03-12 09:04:13 108

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

买卖股票的最佳时机||题目描述:给定一个数组,它的第i个元素代表股票价值,通过设计算法来得到最大的利润,允许多次买卖,但不能同时参与多次交易。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出,因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 ...

2020-03-04 17:37:09 120

原创 买卖股票的最佳时机

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

2020-02-27 11:11:19 71

原创 最大子序和

最大子序和题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。我的思路:定义一个变量存放最大值,然后从数组的第一位开始,找出它所有的子数组,每次将子数组之和与之比较,若大于就将最大值更新给这个...

2020-02-26 20:19:04 57

原创 合并两个有序数组

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

2020-02-26 19:44:19 113

原创 移除元素

移除元素题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路:依次遍历数组元素,将不等于val的元素再依次存放在原数组中。代码:public class Soluti...

2020-02-20 14:02:13 54

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

删除排序数组中的重复项:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。我的思路:首先判断数组是否为空,若是则返回值0,若不为空,则第一个元素不变,然后将其后第一个比它大的元素的值作为数组的第二个元素,依次遍历整个排序数组,从而找出数组中每一个不重复的...

2020-02-19 18:34:59 115

原创 两数之和

两数之和:这里我的方法是先新定义一个长度为2的数组,用来存放符合条件的两个数的数组下标,然后使用两层循环,从第一个数开始将其后的数与之作和,看是否等于目标值,是则将下标值存放在数组中并返回。public class Solution { public int[] TwoSum(int[] nums, int target) { int i,j; ...

2020-02-19 17:14:33 92

原创 Python基础 -- Task12. 模块

Python 基础语法在前面的几个章节中我们脚本是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块(Module)。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模...

2019-11-05 16:44:19 119

原创 Python基础 -- Task11.掌握 魔法方法

Python 基础语法1.构造和析构构造方法类对象类对象支持两种操作:属性引用和实例化。属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name。类有一个名为 init() 的特殊方法(构造方法),该方法在类实例化时会自动调用,像下面这样:def init(self):self.data = []类定义了 init() 方法,类的实例化操作会自动调用 ini...

2019-11-03 18:28:35 148

原创 Python基础 -- Task10. 类与对象

Python 基础语法1. 对象 = 属性 + 方法对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。封装:信息隐蔽技术我们可以使用关键字 class 定义 Python 类,关键字后面紧跟类的名称、分号和类的实现。继承:子类自动共享父类之间数据和方法的机制多态:不同对象对同一方法响应不同的行动2. s...

2019-11-02 08:40:46 91

原创 Python基础 -- Task09. else 与 with 语句

Python 基础语法1. 丰富的 else 语句while … else 语句for … else 语句for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。try …. except … else 语句如果在 try 子句执行时没有发生异常,Python将执行 e...

2019-10-31 10:25:32 133

原创 Python基础 -- Task08. 异常处理

Python 基础语法运行期检测到的错误被称为异常。1. Python标准异常总结2. try - except 语句try:检测范围except Exception[as reason]:出现异常后的处理代码try 语句按照如下方式工作:首先,执行try子句(在关键字try和关键字except之间的语句)如果没有异常发生,忽略except子句,try子句执行后结束。如果...

2019-10-30 14:46:17 115

原创 Python基础 -- Task07. 文件与文件系统

Python 基础语法1. 打开文件open(file, mode=‘r’) 接收两个参数:文件名(file)和模式(mode),用于打开一个文件,并返回文件对象,如果该文件无法被打开,会抛出OSError。打开模式 | 执行操作完整的语法格式为:open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline...

2019-10-28 19:51:39 107

原创 Python基础 -- Task06. 字典与集合

Python 基础语法1. 字典序列是以连续的整数为索引,与此不同的是,字典以"关键字"为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典是 Python 唯一的一个 映射类型,字符串、元组、列表属于序列类型。那么如何快速判断一个数据类型 X 是不是可变类型的呢?两种方法:麻烦方法:用 id(X) 函数,对 X 进行某种操作,比较操作前后的 id,如果不一样,则 X 不可变,如...

2019-10-27 10:33:18 216

原创 Python基础 -- Task05.函数与Lambda表达式

Python基础语法函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则:1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。2....

2019-10-26 22:17:45 176

原创 Python基础 -- Task04. 字符串与序列

Python基础语法1. 字符串字符串的定义Python 中字符串被定义为引号之间的字符集合。Python 支持使用成对的 单引号 或 双引号。如果字符串中需要出现单引号或双引号,可以使用转义符号\对字符串中的符号进行转义。Python 的常用转义字符原始字符串只需要在字符串前边加一个英文字母 r 即可。python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其...

2019-10-24 17:19:14 196

原创 Python基础 -- Task03. 列表与元组

标题Python 基础语法前面介绍的 整型、浮点型和布尔型 都可以看成是单独数据,而这些数据都可以放在一个容器里得到一个「容器类型」的数据,比如:列表(list)、元组(tuple)、字典(dict)、集合(set)和字符串(str)。1. 列表「列表」定义语法为 [元素1, 元素2, …, 元素n]关键点是「中括号 []」和「逗号 ,」中括号 把所有元素绑在一起逗号 将每个元素一一分...

2019-10-22 22:34:14 66

原创 Python基础 -- Task02. 条件与循环

Python 基础语法条件语句if 语句if 语句的 expr_true_suite 代码块只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。单个 if 语句中的 expression 条件表达式可以通过布尔操作符 and,or和not 实现多重条件判断。else 语句Python 提供与 if 搭配使用的 else,如果 if...

2019-10-21 18:22:51 117

空空如也

空空如也

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

TA关注的人

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