java笔记
记录用
学习中的owl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高效制胜题解记录
高效制胜day01 求和问题T1 1. 两数之和 数组 哈希表方1:遍历class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++){ //由于前i位已经互相匹配,j从i+1位开始不会遗漏 for(int j=i+1;j<nums.length;j++){ i原创 2021-10-16 21:38:50 · 380 阅读 · 0 评论 -
剑指offer java day30 分治算法
T1 17. 打印从1到最大的n位数leetcode 返回是int[] 不考虑大数 ,原书考虑大数越界情况下不考虑大数越界class Solution { public int[] printNumbers(int n) { int m = (int)Math.pow(10,n)-1; //要打印的个数 10的n次(从1开始) int[] res = new int[m]; for(int i=0;i<m;i++){原创 2021-09-30 18:33:41 · 218 阅读 · 0 评论 -
剑指offer day29 动态规划
T1 19. 正则表达式匹配k神题解转移方程dp[i][j]条件dp[i][j-2]dp[i-1][j] & s[i-1] = p[j-2]dp[i-1][j] & p[j-2] = ‘.’p[j-1]=’*’dp[i-1][j-1] & s[i-1] = p[j-1]dp[i-1][j-1] & p[j-1] =’.’p[j-1] ≠ ‘*’public boolean isMatch(String s, String p) {原创 2021-09-29 23:30:11 · 162 阅读 · 0 评论 -
剑指offer java day28 搜索与回溯算法
T1 37. 序列化二叉树k神题解理解后写出分析后可知输入序列是层序遍历输入[1,3,5,null,null,4,6]#mermaid-svg-84VWpDbZUls50RKW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-84VWpDbZUls50RKW .label text{fill:#333}#原创 2021-09-28 23:39:02 · 208 阅读 · 0 评论 -
剑指offer java day27 栈与队列
T1 59 - I. 滑动窗口的最大值滑动窗口每次移动元素的增添符合队列先进先出的特点创建一个队列保证1.仅包含滑动窗口的元素2.每次添加元素队列里小于新增加元素则删除QueueDeque添加元素到队尾add(E e) / offer(E e)addLast(E e) / offerLast(E e)取队首元素并删除E remove() / E poll()E removeFirst() / E pollFirst()取队首元素但不删除E element原创 2021-09-27 23:08:03 · 240 阅读 · 0 评论 -
剑指odffer java day26 字符串
T1 20. 表示数值的字符串方1:k神的题解有限状态自动机初始状态,接受状态 |------>被接受初始状态-------转移规制------->接受状态----------|------>被拒绝本题根据题意9种状态0、开始的空格1、幂符号前的正负号2、小数点前的数字3、小数点、小数点后的数字4、当小数点前为空格时,小数点、小数点后的数字5、幂符号6、幂符号后的正负号7、幂符号后的数字8、结尾的空格绘制状态原创 2021-09-26 23:33:05 · 108 阅读 · 0 评论 -
剑指offer java day25 模拟
T1 29. 顺时针打印矩阵n 行数 m列数123456789101110第一轮 [0][0] —>[0][m-1] 左到右第二轮[1][m-1]----->[n-1][m-1] 上到下第三轮[n-1][m-2]----->[n-1][0] 右到左第四轮[n-2][0]----->[1][0] 下到上第五轮[1][原创 2021-09-25 22:05:50 · 196 阅读 · 0 评论 -
剑指offer java day24 数学
T1 14- I. 剪绳子方1:动态规划初始条件dp[n] = n 1<=n<3动态方程dp(n) = max(dp(i)*dp(n-i)) 0<i<nclass Solution { public int cuttingRope(int n) { //递归终止的条件 if(n<4){ return n-1; } int[] dp = new原创 2021-09-24 23:18:46 · 201 阅读 · 0 评论 -
键值offer java day23 数学
T1 39. 数组中出现次数超过一半的数字目标是数组值的众数方1排序,众数在中间位置class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); //升序排序 return nums[nums.length/2]; }}方2:K神题解摩尔投票法T2 66. 构建乘积数组示例[1,2,3,4,5]a[0]a[1]a[2]a[3]a[4]原创 2021-09-23 23:16:37 · 159 阅读 · 0 评论 -
剑指offer java day 22 位运算
理解Krahets大佬题解后的答案T1 I. 数组中数字出现的次数两个相同数字异或为 0,任何数字与0异或结果是其本身class Solution { //输入[4,1,4,6] public int[] singleNumbers(int[] nums) { int z=0,m=1,x=0,y=0; //找到两个只出现一次的异或 for(int num:nums){ //两个相同数字异或为 0,任何数字与0异或原创 2021-09-22 23:19:10 · 219 阅读 · 0 评论 -
剑指offer java day21 运算符
T2 15. 二进制中1的个数方一根据 与运算 定义,设二进制数字 n ,则有:若 n & 1 = 0,则 n 二进制 最右一位 为 0 ;若 n & 1 = 1 ,则 n 二进制 最右一位 为 1 。public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int res = 0; w原创 2021-09-21 23:09:39 · 177 阅读 · 0 评论 -
键指offer java day20 分治算法
解法大部分源于Krahets的题解T1 07. 重建二叉树前序 根左右; 中序 左根右; 后序 左右根测试用例前序 [3, 9, 20,15,7] 中序 [9 , 3 , 15,20,7] [根|左| 右 ] [左|根| 右 ]class Solution { int[] preorder; //先序数组便于 HashM原创 2021-09-20 23:39:35 · 86 阅读 · 0 评论 -
剑指 offer day19 分治算法
T1 64. 求1+2+…+n需要逻辑运算符的短路效应代替用if判断的递归终止条件class Solution { public int sumNums(int n) { //逻辑符号的短路效果 //n > 1时递归 n=1短路相当于递归终止条件 boolean x = n>1 && (n += sumNums(n-1))>0; return n; }}T2 68 - I. 二叉搜索树原创 2021-09-19 23:21:09 · 209 阅读 · 0 评论 -
剑指offer java day18 搜索与回溯算法
T1 55 - I. 二叉树的深度DFS 根节点的深度=max(左叶子深度,右叶子深度)+1class Solution { public int maxDepth(TreeNode root) { if(root==null) return 0; return Math.max(maxDepth(root.left),maxDepth(root.right))+1; }}BFSclass Solution { public int ma原创 2021-09-18 23:35:53 · 171 阅读 · 0 评论 -
剑指offer java day17 排序
T1 40. 最小的k个数排序 返回前k个。class Solution { public int[] getLeastNumbers(int[] arr, int k) { int low = 0; int high = arr.length -1; int[] res = new int[k]; quickSort(arr,low,high); for(int i=0;i<k;i++){原创 2021-09-17 23:30:32 · 184 阅读 · 0 评论 -
剑指 offer java day16 排序
T1 45. 把数组排成最小的数若拼接字符串 x + y > y+x,则 x “大于”y ; 通过传递性证明compareTo()将number对象与参数比较。如果指定的数与参数相等返回0。如果指定的数小于参数返回 -1。如果指定的数大于参数返回 1。valueOf(int i) 返回 int 参数的字符串表示形式快速排序模板public void quickSort(int[] num){ int low = 0; int high = num.le原创 2021-09-16 22:43:23 · 199 阅读 · 0 评论 -
剑指offer java day15 搜索与回溯算法
T1 34. 二叉树中和为某一值的路径DFS 先序遍历 + 路径记录先序遍历: 按照 “根、左、右” 的顺序,遍历树的所有节点。public E removeLast()删除并返回最后一个元素。class Solution { //记录当前路径的链表 LinkedList<Integer> path = new LinkedList<Integer>(); //记录结果的链表数组 LinkedList<List<原创 2021-09-15 23:39:13 · 228 阅读 · 0 评论 -
剑指offer java day14 搜索与回溯算法
T1 12. 矩阵中的路径深度优先搜索(DFS)+ 剪枝char[] toCharArray()将此字符串转换为一个新的字符数组。class Solution { public boolean exist(char[][] board, String word) { char[] words = word.toCharArray(); for(int i=0;i<board.length;i++){ //行 for(原创 2021-09-14 23:42:10 · 204 阅读 · 0 评论 -
剑指offer java day13 双指针
T1 21. 调整数组顺序使奇数位于偶数前面class Solution { public int[] exchange(int[] nums) { int i=0,j=nums.length-1,tmp; while(i < j){ //i 指针向右移动,直到找到偶数 while((i<j) && (nums[i]%2 == 1)) i++; //j 指针向右移动,原创 2021-09-13 23:15:03 · 201 阅读 · 0 评论 -
剑指offer java day12 双指针
T1 25. 合并两个排序的链表两个链表都不空的时候比较节点,有一个空时就指向另一个非空class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head = new ListNode(0),cur= head; while(l1!=null && l2!=null){ if(l1.val >= l2.val)原创 2021-09-12 23:11:32 · 198 阅读 · 0 评论 -
剑指offer java day11 双指针
T1 18. 删除链表的节点class Solution { public ListNode deleteNode(ListNode head, int val) { ListNode node = head,per=null; if(head.val == val) //头节点的值就是目标值直接处理头 head = head.next; else{ while(node!=null){原创 2021-09-11 23:11:38 · 222 阅读 · 0 评论 -
剑指offer java day10 动态规划
T1 46. 把数字翻译成字符串本题的可理解是有条件限制的青蛙跳楼梯即当跳2步时组成的两位数应该属于[10,25]初始状态dp[0]=dp[1] =1转移方程dp[i]条件dp[i-1]+dp[i-2]10x(i-1)+x(i) ∈ [10,25]dp[i-1]10x(i-1)+x(i) ∈ [0,10) ∪ (25,99]本次dp[i] 只受dp[i-1],dp[i-2]影响 ,空间复杂度可以优化到o(1)class Solution { publ原创 2021-09-11 22:17:48 · 223 阅读 · 0 评论 -
剑指offer Java day09 动态规划
T1 42. 连续子数组的最大和状态定义:dp[i] 代表以元素nums[i]为结尾的连续子数组最大和转移方程 :dp[i]条件dp[i-1]+nums[i]dp[i-1]>0nums[i]dp[i-1]<=0class Solution { public int maxSubArray(int[] nums) { int res = nums[0]; for(int i=1;i<nums.length;i原创 2021-09-09 23:20:13 · 175 阅读 · 0 评论 -
剑指offer Java day08
T1 10- I. 斐波那契数列动态规划class Solution { public int fib(int n) { if(n==0) return 0; //因为本题只要求输出第n项斐波拉契数所以只用关心n-1和n-2,节约空间就声明3个变量 int dp0 = 0; int dp1 = 1; int tmp; for(int i=2;i<=n;i++){ tmp原创 2021-09-08 22:42:36 · 182 阅读 · 0 评论 -
剑指offer java day07
T1 26. 树的子结构原树:树A,目标树:树B子结构的根节点可能为树 A 的任意一个节点step1:判断A中是否有[B的根节点相同的节点step2:判断A是否有B的结构class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { //情况一:A空或B空 情况二:两树非空,递归自身调用recur return (A!=null && B!=null)&原创 2021-09-07 22:42:48 · 184 阅读 · 0 评论 -
剑指offer java day06
T1 32 - I. 从上到下打印二叉树广度优先搜索(BFS)public E poll()删除并返回第一个元素。size()返回 arraylist 里元素数量class Solution { public int[] levelOrder(TreeNode root) { //空的情况 if(root==null) return new int[0]; Queue<TreeNode> nodes = ne原创 2021-09-07 11:52:46 · 183 阅读 · 0 评论 -
剑指offer java day05
T1 04. 二维数组中的查找krahets 大佬矩阵旋转45°得到二叉树class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { int i = matrix.length -1,j=0; //矩阵范围内 while(i>=0 && j<matrix[0].length){ //从左下角向上原创 2021-09-06 13:02:14 · 179 阅读 · 0 评论 -
剑指 offer java day04
T1 03. 数组中重复的数字双重循环class Solution { public int findRepeatNumber(int[] nums) { for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[i] == nums[j]) return nums[i];原创 2021-09-04 23:16:28 · 191 阅读 · 0 评论 -
剑指offer java day03
T1 05. 替换空格字符串 String 长度一定,StringBuilder动态长度1public StringBuffer append(String s) 将指定的字符串追加到此字符序列。2char[] toCharArray()将此字符串转换为一个新的字符数组class Solution { public String replaceSpace(String s) { StringBuffer sb = new StringBuffer(原创 2021-09-03 19:39:29 · 183 阅读 · 0 评论 -
剑指offer java day02
T1 06. 从尾到头打印链表自己想的:拿到链表长度,一个数组放链表正序数,结果数组放倒序数class Solution { public int getLength(ListNode head){ int length = 0; ListNode tmpNode = head; while(tmpNode!=null){ length++; tmpNode = tmpNode.next;原创 2021-09-03 18:36:31 · 187 阅读 · 0 评论 -
剑指offer day01 java
day011.T1 用两个栈实现队列队列 :先进先出 First In First Out、FIFO 栈 :先进后出 Last In, First out,LIFOjava 队列 [https://www.runoob.com/java/data-queue.html ]Java 栈 [ https://www.runoob.com/java/data-stack.html]序号方法描述1boolean empty() 测试堆栈是否为空。2原创 2021-09-02 15:17:50 · 149 阅读 · 0 评论 -
java龟兔赛跑中关于线程调用repaint无效
java龟兔赛跑中关于线程调用repaint无效参照了https://bbs.youkuaiyun.com/topics/390752602按照在线程中只改变一个已经声明的面板用repaint方法使小圆点移动的想法进行编写但是画面仍是没有改变。import java.awt.Color;import java.awt.Graphics;import java.util.ArrayList;im...原创 2019-06-07 18:50:32 · 390 阅读 · 0 评论 -
SpringBoot笔记纪录
YAML语法一、YAML值的写法 1.基本语法 k: v;表示一对键值(空格必须有),以空格的缩进来控制层级关系; 只要是左对齐的一列数据,都是同一层级 属性和值也是大小写敏感二、YAML值的写法 1.字面量:普通的值(数字,字符串,布尔) K: v;字面量直接来写;字符串默认不用加上单引号或双引号; “”:双引号;双引号不转译字符串...原创 2019-06-25 21:53:43 · 129 阅读 · 0 评论
分享