![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leecode
文章平均质量分 74
起风了1122
这个作者很懒,什么都没留下…
展开
-
leecode77——组合(回溯算法)
其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」。原创 2023-05-24 10:56:41 · 676 阅读 · 0 评论 -
leecode530—二叉搜索树的最小绝对差
if(root . val == target) // 找到目标,做点什么 if(root . val < target) BST(root . right , target);如果遇到在二叉搜索树上求差值、最值等,就把他想象成在一个有序数组上求最值、差值。二叉搜索树如果采用中序遍历,就是一个有序数组。在一个有序数组上求最值岂不是很简单。// 记录上一个遍历的结点 int result = Integer . MAX_VALUE;//左 traversal(root . left)原创 2023-05-23 10:41:40 · 430 阅读 · 0 评论 -
Leecode98
给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。原创 2023-05-22 19:32:34 · 422 阅读 · 0 评论 -
Array-Deque-Queue等的区别
Deque 是一个具有队列和栈性质的双端队列。ArrayDeque 是 Deque 接口的实现,底层使用数组实现的双端队列。Queue 是一种先进先出的队列接口,定义了队列的基本操作。HashMap 是一个哈希表实现的键值对存储容器。new HashMap() 和 new Stack() 是创建空对象的语法。Stack 是一个栈数据结构,遵循后进先出原则。ArrayList 是一个动态数组实现的列表容器。原创 2023-05-19 09:20:08 · 637 阅读 · 0 评论 -
leecode654——最大二叉树
单调栈,出栈原创 2023-05-18 10:30:55 · 338 阅读 · 0 评论 -
leecode112——路径总和
不要去累加然后判断是否等于目标和,那么代码比较麻烦,可以用递减,让计数器count初始为目标和,然后每次减去遍历路径节点上的数值。如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。需要二叉树的根节点和sum返回值,所以需要两个参数,返回值类型为booleaan类型。再来看返回值,递归函数什么时候需要返回值?递归函数是有返回值的,如果递归函数返回true,说明找到了合适的路径,应该立刻返回。如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。原创 2023-05-16 12:01:47 · 322 阅读 · 0 评论 -
leecode——513找树左下角的值
本题比较适合迭代法理解,层序遍历分割线while(!i < size;i ++) {= null) {= null) {} }LinkedList 和 ArrayDeque 都实现了 Queue 接口,它们之间的主要区别在于底层数据结构不同。LinkedList 使用双向链表来实现队列,这意味着它支持快速地在队列的两端添加或删除元素,但在随机访问和插入元素时相对较慢。如果应用场景需要在队列的两端频繁地添加或删除元素,则使用 LinkedList 会更好。原创 2023-05-15 13:39:44 · 342 阅读 · 0 评论 -
leecode404——左叶子之和
首先要注意,是左叶子之和,而不是左侧节点之和。那么明确说,左叶子就是节点A的左孩子不为空,且左孩子的左节点为空 并且左孩子的右节点为空,那么A的左孩子为左叶子节点。原创 2023-05-15 10:12:21 · 315 阅读 · 0 评论 -
leecode255——二叉树的所有路径代码及示例
/ 存最终的结果// 作为结果中的路径“->”// 前序遍历,中// 遇到叶子结点// 输出// StringBuilder用来拼接字符串,速度更快i++) {// 记录最后一个节点// 收集一个路径return;原创 2023-05-13 16:08:52 · 503 阅读 · 0 评论 -
this关键字,构造方法及格式--学习笔记--14
1.This关键字:代表所在类的对象引用记住:方法被哪个对象调用,this就代表哪个对象。什么时候用this呢?局部变量隐藏成员变量package yang1;//get获取值需要返回,set都要传参class Phone{ private String lable; private int price; private String color; public String...原创 2020-02-12 23:16:04 · 268 阅读 · 0 评论 -
代码块,看程序写结果--学习笔记--18
代码块:在Java中,使用{}括起来的代码称为代码块根据其位置和声明的不同,可以分为(1)局部代码块:局部位置,用于限定变量的生命周期(2)构造代码块:在类中的成员位置,用{}括起来的代码,每次调用构造方法执行前,都会先执行构造代码块。作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化(3)静态代码块:在类中的成员位置,用()括起来的代码,只不过它用static修饰了作用:...原创 2020-02-13 12:47:36 · 203 阅读 · 0 评论 -
菜鸟写代码--复写0,其余元素平移--03
题目:给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。public class pingyi { public static void main(String[] args) { int arr[]= {1,0,2,3,0,4...原创 2020-02-09 01:31:44 · 220 阅读 · 0 评论 -
stataic关键字,main方法详解--学习笔记--17
针对多个对象有共同的这样的成员变量值的时候,Java就提供了一个关键字来修饰,Static的特点可以修饰成员变量,还可以修饰成员方法1.随着类的加载而加载2. 优先于对象存在3. 被类的所有对象共享什么时候使用?如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的4. 可以通过类名调用其实它本身可以通过对象名调用,静态修饰的内容一般我们称其为:与类相关的,类成员注意事项...原创 2020-02-12 23:36:58 · 495 阅读 · 0 评论 -
菜鸟写代码--在该数组中找出和为目标值的那两个整数,返回数组下标--01
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。import java.util.Scanner;public class One { public static void main(String[] args) { int [] nums= {2,6,4,5,7};//条件 int []b=getIndex...原创 2020-02-05 22:07:27 · 380 阅读 · 0 评论 -
一个标准的学生类代码,标准手机类代码--学习笔记--15
成员变量:Name,age构造方法:初始化无参,带两个参成员方法getXxx()/setXxx()show();输出该类的所有成员变量值给成员变量赋值:1.setXxx()方法2.构造方法输出成员变量值的方式:通过getXxx()分别获取然后拼接通过调用show()方法搞定3. class Student{4. private String name;5. pr...原创 2020-02-12 23:20:56 · 310 阅读 · 0 评论 -
定义一个长方形类,求周长和面积--学习笔记--16
1.变量什么时候定义为成员变量如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量2.变量的范围越小越好,因为能及时的被回收3.定义一个长方形类,求周长和面积然后定义一个Test进行测试长方形的类成员变量:长,宽成员方法:周长,面积import java.util.Scanner;class Oblong{ private int length; priva...原创 2020-02-12 23:27:39 · 3420 阅读 · 0 评论 -
菜鸟写代码--模拟简易计算器--04
模拟计算器import java.util.Scanner;class Jisuan{ public int add(int a,int b) { return a+b; } public int sub(int a,int b) { return a-b; } public int mul(int a,int b) { return a*b; } public in...原创 2020-02-12 23:30:24 · 212 阅读 · 0 评论 -
菜鸟写代码--进行三次这个游戏,请返回 小A 猜对了几次--05
C语言版#include<stdio.h>int main(){ int guess[]={1,2,3}; int answer[]={3,2,3}; //int game(int guess[],int answer[]); int i=0,count=0; for(i=0;i<3;i++) { if(guess[i]==answer[i]) { ...原创 2020-02-15 00:16:13 · 190 阅读 · 0 评论 -
菜鸟写代码--给整数 n,返回该整数「各位数字之积」与「各位数字之和」的差--02
题目:给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。这是最终代码:import java.util.Scanner;public class One { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请...原创 2020-02-05 22:51:33 · 1393 阅读 · 0 评论 -
菜鸟写代码--猜数字小游戏--05
import java.util.Scanner;public class Test { public static void main(String[] args) { int number=(int)(Math.random()*100+1); while(true) { Scanner sc=new Scanner(System.in); System.out.pr...原创 2020-02-13 11:12:52 · 237 阅读 · 0 评论 -
二叉树的层序遍历思想模板
ArrayList底层是基于数组实现的,它支持快速随机访问元素,因此对于大量的访问操作,ArrayList的性能优于LinkedList。但是,在插入和删除元素时,由于需要移动数组中的元素位置,所以ArrayList的性能比LinkedList差。LinkedList底层是基于双向链表实现的,它支持高效的元素插入和删除操作,因为只需要改变相邻元素之间的指针。但是,随机访问的性能较差,因为需要遍历链表才能访问指定位置的元素。原创 2023-05-08 20:58:34 · 505 阅读 · 0 评论 -
计算并返回 x 的 算术平方根
很容易知道,题目要我们返回的整数是有范围的,直觉上一个整数的平方根肯定不会超过它自己的一半,但是 0 和 1 除外,因此我们可以在 1 到输入整数除以 2 这个范围里查找我们要找的平方根整数。如果这个整数的平方 严格小于 输入整数,那么这个整数 可能 是我们要找的那个数(重点理解这句话)。从题目的要求和示例我们可以看出,这其实是一个查找整数的问题,并且这个整数是有范围的。如果这个整数的平方 严格大于 输入整数,那么这个整数肯定不是我们要找的那个数;猜的数平方以后小了,可能猜的数就是,也可能不是。原创 2022-09-17 10:15:46 · 1234 阅读 · 0 评论 -
leetcode-最后一个 单词的长度java与python
给一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。(4)第二种情况,以字符串"Hello World “为例,需要先将末尾的空格过滤掉,再进行第一种情况的操作,即认为最后一个单词为"World”,长度为5。(3)第一种情况,以字符串"Hello World"为例,从后向前遍历直到遍历到头或者遇到空格为止,即为最后一个单词"World"的长度5。(5)所以完整过程为先从后过滤掉空格找到单词尾部,再从尾部向前遍历,找到单词头部,最后两者相减,即为单词的长度。原创 2022-09-12 11:10:04 · 1021 阅读 · 0 评论 -
leecode简单题19_罗马数字转为整数(python)
通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。例如, 罗马数字 2 写做 II ,即为两个并列的 1。(4)定义一个变量i,遍历得到这个s的长度,输出str[ i ]即可得到字符串s的下标值i对应的字符,说明前面的读取都是没问题的。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。(2)既然是求和,首先需定义一个变量去接收最后的和;原创 2022-09-05 10:48:36 · 104 阅读 · 0 评论