自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode general

对于那种while里写了>=2个条件的,且其中有一条件为i>=0/i<nums.length-1/...这种表示边界的,一定把这个边界条件放在while里的最前面,因为一进来先判断边界的话可以少很多麻烦,不会有溢出产生。...

2021-10-26 21:44:14 72

原创 leetcode 二分查找

排序数组中的问题,可以考虑用二分查找来解决,降低时间复杂度。二分查找经典框架:#35.注意几个细节:while的条件是left=<right,而不是left<right(当然也有视情况具体决定;while里先写mid,且mid=(left+right)/2;无论是往左还是往右缩小范围,都要避过mid,即left=mid-1,right=mid+1(当然也有视情况而定,有的就不用避过并保留mid);返回结果时返回left还是right都行,因为while的终止条件是left<=right

2021-10-25 22:46:45 101

原创 leetcode array

经常遇到那种一个数组长度为n,且里面存的数在0~n这个范围内,但不是0~n每个数字出现一次的,而是有的数字重复出现了,有的压根没出现过,找到这两个东西一:将数组中每个数字与0~n建立索引,建立完后,遍历一下数组还看谁没建立索引,就能把丢失的揪出来二:0,1标记法,遍历数组,0表示重复出现的数,1表示丢失的数(#645)排序数组中的问题,首先想到用二分法求解...

2021-10-20 21:14:16 66

原创 leetcode 位运算

^这个符号表示一个圆圈中间一个加号那个标志,这个符号常用来找不同,如果一样就消掉,最后剩下那个单独出现的,因为a➕b➕a=(a➕a)➕b=0➕b=b如何数一个数的二进制形式中1的个数,让这个数与1去and,(i&1)表示取此数与1and后的结果的最后一位,若最后一位为1,则count++,然后把此数往右shift一位,因为我们是从右开始数的,相当于现在把刚刚已经检验过的那一位踢出去然后接着检验下一位,再与1去and并重复上面步骤,知道shift了此数二进制的位数那么多i&j:表示取i

2021-10-14 21:45:09 567

原创 leetcode stack

先进后出是栈最大的特点,所以有一些很适合用栈的问题:括号匹配,括号是否平衡,进制转换,算数表达式(prefix/infix/post expression)常用方法:Stack<type> s= new Stack<>();//创建栈s.push(item);// 将数据item放在栈的顶部type m=s.pop();//返回栈顶部数据,并从栈中移除该数据type m=s.peek();//返回栈顶部数据,但不移除,注意,栈没有top()这个方法,而应是peek()

2021-10-13 22:04:55 43

原创 字符串string

对string的处理,一些string 的内置方法很方便好用char a=string.charAt(i);//取到string第i位的charchar[] c=string.toCharArray();//将string转化成一个char的数组Arrays.sort(a);//将括号里的这个array sort一下,若是数字array就按大小排序,若是char array就按字典序排序String s=new String(charArray);//将一个char array转化成str

2021-10-03 02:47:10 109

原创 递归+回溯+DFS+BFS

计算递归的空间复杂度时,一般都从栈的角度出发,因为每调用一次函数就会占用栈的一个格子,看调用了几次可以看出空间复杂度是多少递归的核心思想:把规模大的问题转化为规模小的且逻辑相似的子问题来解决递归三要素:明白这个递归function的作用是什么;递归终止条件(以及终止之后的处理方法);递归body的逻辑(抽象出一个干净利落的重复逻辑用到子问题以及最终母问题上)递:将大问题化为小问题,直到无法再细化为止,去解决这个小问题;先写递归body再进行递归操作实在“递”去的过程中解决问题归:将解决了的小

2021-10-03 02:10:51 113

原创 leetcode tree

涉及到前序,中序,后序这种去遍历二叉树的,一般都用递归去做,去仿照这几种遍历用到的递归方法一般如果一个void function要用到递归,则其递归停止条件一般都是if(...==null) return ;(重点在于这个return空)一开始也最好先检验root是否为null,以及如果是null要怎么操作怎么return...

2021-09-11 22:39:11 42

原创 leetcode hashtable

一些需要从重复->无重复的目的可以考虑使用哈希表,来排除所有重复的元素

2021-08-27 10:29:43 60

原创 leetcode stack

stack常用方法:peek/top,push,pop,empty,search(返回最靠近顶端的目标元素到顶端的距离)Java中有内置method可以直接得到stack的size大小,stack.size( );声明/新建一个stack:Stack<stack中想放的元素类型> stackname=new Stack<stack中想放的元素类型>();想在某篇文件中用到stack的东西,可以在文件头部输入#include<stack>的字样...

2021-08-27 10:27:52 71

原创 leetcode linked list

每个node有两个属性,一个data值,一个next node做任何事之前,先把可能越界的情况的判断先写出来,比如必须得是大于0的情况若一开始就<0 则直接return什么,或者一上来就为空的话则直接return什么Java中没有直接得到链表长度的内置method,所以要自己用while去遍历得到链表长度...

2021-08-27 09:09:20 87

原创 异常exception与错误error(狂神)

Java把异常当作对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的集合error大多数与程序员无关,是JVM生成的exception中的runtime exception一般是由逻辑错误引起的处理异常的五个关键字:try, catch, finally, throw, throwstry, catch(,finally)结构catch里放的是想要捕获的异常类型,上面图中的所有字段都可以放在catch后的括号里,且可以按照层级关系,如果放Throwable.

2021-08-27 08:47:09 123

原创 OOP(狂神)

面向对象:以class的方式组织代码,以object的方式组装(封装)数据OOP的核心思想是抽象OOP的三大特性:封装,继承,多态Java是值传递,也就是说当调用某个method时,调用时传入的参数,实际是把这个参数的值了传进去,而不是把这个参数的地址传进去public static void change(int a ){ a=10;}public static void main(String[] args){ int a=1; System.out.pr

2021-08-24 14:48:12 86

原创 数组(狂神)

数组的定义的两种方法:int[ ] nums; int nums[ ](最好用第一种,第二种是C/C++中常用的)[ ]里放的是这个定义的数组的长度创建数组:int[] nums=new int[10];Java内置有function可以直接获取数组的长度,.用.lengthint count=nums.length;若数组中某个位置的元素没赋值,则access这个位置时输出的是这个数组类型的默认值数组的长度是确定的,一旦被创建,长度不能改变数组中的元素一定都是同一类型的

2021-08-24 10:59:17 50

原创 方法method(狂神)

若一个method是static的,则在调用这个method时,可以不通过new一个object就能去调用这个method,可以直接使用这个methodmethod的重载定义:一个class下,method名可重复,但参数列表(类型/参数个数/参数排列顺序) 必须不同,return类型可相同可不相同;仅仅是返回类型不同不足以构成重载当run时,编译器会根据传入的参数去与重名的method逐个匹配,以选择对应的method;若匹配失败,则编译器报错Java文件也可以到终端去编译和run

2021-08-23 21:31:38 142

原创 流程控制(狂神)

读取用户的输入:scannerScanner scanner=new Scanner(System.in);//建立一个scanner来接收用户输入System.out.printIn("please enter the input:");//告诉用户请输入String str=scanner.nextLine();//用一个string变量来承接用户的输入,可以用next(),可以用nextLine()scanner.close();//关闭scanner在读取前一般需要使用hasNe

2021-08-23 19:06:18 42

原创 Java基础(狂神)

数据类型概览Java为强语言类型,也就是说一切变量都得先定义后使用Java的数据类型分为两类:基本类型primitive type和引用类型reference typeprimitive type:byte,short,int,long(从左到右能包括的范围逐渐增大,实际操作中根据数字大小去选择合适的变量类型);float(占4个字节),double(占8个字节);char;booleanreference type:类,接口,数组long类型要在数字后加L,float类型要在数字后加F

2021-08-22 15:21:19 209

原创 2021.8.21(狂神Java入门)

Markdown语法typora编辑器C的痛点在于指针和内存管理eclipse和idea是开发工具Hadoop:针对大数据领域,记存储查询分析等等于一体的分布式框架Java特性:面向对象(对象以及对象之间的接口)可移植性(可跨平台的去移植,一次编写可以到处运行,主要是靠JVM)高性能(即时编译)分布式(多个系统协同合作完成一个特定任务的系统,分布式的主要工作是分解任务,将职能拆解;相对的为集群式;集群:多个人在一起作同样的事 。分布式 :多个人在一起作不同的事 )动态

2021-08-22 02:45:32 808

空空如也

空空如也

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

TA关注的人

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