- 博客(27)
- 收藏
- 关注
原创 LeetCode——二叉树的最近公共祖先
题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例一: 输入: root = [...
2020-04-29 14:14:24
181
原创 LeetCode——二叉树的最大深度
题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 。 思路 如果根节点为空那么返回0; 运用递归找到左右子树的最大深度,求得最大的max值加1 代码 publi...
2020-04-28 19:21:06
188
原创 LeetCode——对称二叉树
题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [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 思路 1.用递归法,创建一个bool 类型的ismirror函数 在里面写是否正确的方法,运用递归,在...
2020-04-24 11:55:47
180
原创 leetcode 100——相同的树
题目描述 给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例一 输入: 1 1 / \ / 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / 2 2 [1,2...
2020-04-21 23:20:43
154
原创 只出现一次的数字
题目描述 136.只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解题思路 1.用暴力法 public class Solution {...
2020-04-07 21:48:27
121
原创 无重复字符的最长子串
题目描述 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2:输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3:输入: “pwwkew” 输出: 3 解释: 因为无重复字...
2020-04-07 21:02:06
95
原创 滑动窗口最大值
题目描述 解题思路: 暴力法:遍历所有的滑动窗口,取到每一个滑动窗口的最大值。 代码 public class Solution { public int GetMax(int[] a,int start,int k) { int max=int.MinValue,i=0; while(i<k){ if(a[s...
2020-03-26 15:54:16
95
原创 整数反转
题目描述: 解题思路: 依次把组成x的数字从后往前遍历出来并依据相应数学表达式重新组成数temp,最终返回temp 注意一定要判断temp的范围,考虑到溢出情况!!! 代码: public class Solution { public int Reverse(int x) { long temp = 0; while(x!=0) ...
2020-03-24 17:20:03
102
原创 猜随机数
猜随机数 题目描述 用c++的方法实现:首先根据公式让系统生成一个随机数magic,使用do-while循环,因为每次猜测后程序会输出是第几次猜测,所以此cout语句要在循环当中,其余很好理解 代码如下: 运行结果: ...
2020-03-04 16:20:01
184
原创 合并两个有序数组——c++实现
合并两个有序数组 题目描述 现将数组2中的元素填充到数组1中,全都放到数组1元素的后面,当flag=0时,说明新数组当中元素已经排好顺序不需改变,若flag=1,则需进行数组排序,代码如下: ...
2020-02-28 17:49:59
1245
原创 买股票的最佳时机——c++实现
买股票的最佳时机 问题描述 找出prices里的最小值,遍历其中数值,将所有的数值与最小值做差,找出差的最大值,即为获取的最大利润。代码如下: ...
2020-02-28 17:37:12
437
原创 最大子序和——c++实现
最大子序和 题目描述 要找到连续子数组的最大和,我们定义两个变量sum和maxsum,sum用来移动查找数组当中满足成为连续子数组最大和要求的元素,maxsum用来更新当前子数组的最大和,代码如下: ...
2020-02-27 16:14:43
308
原创 移除元素
移除元素——c++实现 题目描述 运用双指针,快指针在数组中从前向后遍历,当快指针所指元素不等于val的元素时,将快指针所指元素的值赋给慢指针,赋值后,慢指针向后移动,快指针接着赋值,最后输出慢指针之前的元素个数(包括慢指针当前所指元素)即可。代码如下: ...
2020-02-22 15:30:10
106
原创 两数之和
两数之和——c++实现 题目描述 此题我用的暴力法,用两个for循环实现,当数组中第i个元素与第j个元素相加恰好等于目标值的时候,输出i,j。 两个循环是并列的,刚开始第二个for循环我写在了第一个循环里面,也没有定义i,j为常量,所以出现了很多错误,改了好久… 代码如下: ...
2020-02-22 14:24:52
104
原创 删除排序数组中的重复项
删除排序数组中的重复项——c++实现 题目描述 对于数组问题首要想到指针,本题采用双指针。 将第一个指针指向数组中第一个元素,第二个指针指向数组中第二个元素,第二个指针从前往后遍历,若第一个指针与第二个指针所指元素不相同,将第一个指针向后移一位。最终返回值为第一个指针所指的元素个数加一,算法如下: ...
2020-02-22 14:10:06
149
原创 类与对象
在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。 对象=属性(静态的特征)+方法(动态的特征) 在Python中,定义类是通过class关键字: 以man为例: class man(object): pass class后面紧接着是类名,即man,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继...
2019-11-02 10:58:58
184
原创 else与with语句
else语句 要么怎样,要么不怎么样 干完了能怎样,干不完就别想怎样 if…: (如果if后的条件为真,执行if语句后的循环 … 执行到break跳出了,else后的 语句不会被执行) break; else: (如果if后的条件为假,那么执行else后的条件) … 没有问题,那就干吧(与异常处理搭配) 例: with语句 加with在打开文件前,可以自动关闭文件,避免忘记关...
2019-10-31 12:43:47
160
原创 python之异常处理
try-except语句: try: 检测范围 except Exception[as reason]: 出现异常(Exception)后的代码处理 try-finally语句 try: 检测范围 except Exception[as reason]: 出现异常(Exception)后的代码处理 finally: 无论如何都会被执行的代码 ...
2019-10-30 17:11:13
128
原创 Python基础之文件和文件系统
文件 包括(.exe .txt .ppt .jpg .mp4 avi) 打开文件的方法: 文件对象方法: 文件系统 os模块中关于文件常用的函数使用方法:
2019-10-28 18:26:37
72
原创 python基础之字典与集合
字典 Python内置了字典:使用键-值(key-value)存储,具有极快的查找速度。 用dict实现,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下: 把数据放入dict的方法,除了初始化时指定外,还可以通过key放入: 由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉: 如果key不存在,dict就会报错: 要...
2019-10-27 12:14:35
246
原创 Python基础之函数与lambda表达式
创建函数 调用函数:Python中存在很多内置函数(已定义好的函数)使用时可直接调用 定义函数:在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 例: 定义函数时,需要确定函数名和参数个数; 如果有必要,可以先对参数的数据类型做检查; 函数体内部可以用return随时返回函数结果; 函数...
2019-10-25 20:45:42
104
原创 Python基础之字符串与序列
字符串常见函数 序列 list()作为一个方法存在两个形态,一个有参数一个没参数 list():不带参数,返回一个空的列表 list([iterable]):返回一个迭代器 tuple([iterable]):把一个可迭代对象转换为元祖 str(obj):把obj对象转换成字符串 max():返回序列或参数中的最大值(序列或参数类型要统一) min():返回序列或参数中的最小值(序列...
2019-10-24 13:19:08
104
原创 列表与分组
列表 创建一个普通列表: 通过方括号括起、逗号分隔的一组值得到。一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同,如: * 添加新元素的方法: 1.可以在列表结尾通过append()添加新元素,如: 2.通过extend()添加新元素,如: 用len()可以找出列表中元素的个数,如: 从列表中获取元素(第一个元素从0开始)如: 从列表删除元素: 1.remove:必须要知道...
2019-10-22 21:03:36
636
原创 Python基础之条件与循环
if语句 1.只有if: 如果if语句判断为真,执行print,否则什么也不做 2.if-else 如果if语句为真,执行if后的,如果if语句判断为假,执行else(注意不要少些冒号) 3.多个elif(elif是else if 的缩写) if<条件判断1>: <执行1> elif<条件判断2>: <执行2> elif<条件判断3>: ...
2019-10-21 12:18:09
129
原创 #Python基础——变量,运算符,数据类型
一.变量 1.变量前要进行赋值 2. 变量名可以包括字母,数字,下划线,但变量名不能以数字开头 3. 字母可以使大写或小写,但大小写是不同的 4. 等号(=)是赋值的意思,左边是名字,右边是值,不能写反 5. 尽量给变量取一个专业一点的名字 二.字符串 1.创建字符串,要在字符串两边加单引号或双引号 2.如果字符串内出现单引号或双引号要用转义字符“\” 3.在字符串前加r即为原始字符串,可以对转义...
2019-10-20 23:03:11
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅