自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 #27 #28 #55I #54 #55II #68I #68II

递归的模式--自顶向下调用 1.递归结束条件 2.递归调用 3.每一层执行的内容 4.返回 二叉树的镜像 思路: 1.递归结束条件:节点为空,返回自己 2.递归调用:变量暂存结果,防止递归途中改变了结构 3.每一层执行的内容:交换左右节点 4.返回:返回左右调换后的节点 代码: public TreeNode mirrorTree(TreeNode root) { if(root==null)return null; TreeNode leftChild=mirrorTre

2021-06-27 17:23:41 154

原创 简单 字符串操作相关 #05 #58I #58II

知识点 字符串操作API

2021-06-27 16:24:45 100

原创 JZ13 调整数组顺序使奇数位于偶数前面

题意 奇数在前,偶数在后,相对顺序不变 思路 模拟 int[] 转存 到 List中 ; 标记第一个偶数的位置, 在其后的奇数插入到该位置, 并删除原本位置的数 更新第一个偶数的位置 知识点 利用List进行便捷的指定位置插入和删除 list.add(index,num) list.get(index) list.remove(index) public int[] reOrderArray (int[] array) { List<Integer>list=new Arra

2021-06-27 15:21:35 118

原创 JZ1 二维数组中的查找

题意 二维数组; 每一行都按照从左到右递增的顺序排序; 每一列都按照从上到下递增的顺序排序; 查找某个值是否存在 思路 从右上角开始查找 往下每个数都变大 往左变小 public class Solution { public boolean Find(int target, int [][] array) { int rows=array.length,cols=array[0].length; int moveToMinx=0,moveToMiny=-1,moveTo

2021-06-27 15:12:53 99

原创 负数,二进制,补码,int的范围

负数的补码 补码规律:除符号位外,数字越大对应负的越小 以32位有符号数为例: 全1为 -1 的补码: 1111 1111,1111 1111, 1111 1111,1111 1111 “-1”补码 全零(符号位1)为最大负数(2^31)的补码: 1000 0000, 0000 0000, 0000 0000, 0000 0000 “-2147483648”补码 负数与整数构成一个循环 即最小负数 再 减一 等于 最大整数: int的范围 -2^31 ~~ (2^31)

2021-06-27 09:55:29 781

原创 JZ11 二进制中1的个数

题意 求int补码中1的个数 思路 用&运算 取出每一位的最左边的数字 然后右移 if ((n&1)==1) n>>1; 问题:负数右移最高位补1 改进:比较位左移而不改变原数字 public int NumberOf1(int n) { int ans=0; int temp=0x01; while (temp!=0){ if((n&temp)!=0)ans++; temp=te

2021-06-27 09:54:40 101

原创 JZ47 求1+2+3+...+n

题意 不用循环,乘法,判断语句实现求和 思路 用递归代替循环 用逻辑与代替递归结束判断 A&&B ,A为递归结束条件,来决定B是否执行 public class Solution { public int Sum_Solution(int n) { boolean x=n>1&&((n+=Sum_Solution(n-1))>0); return n; } } ...

2021-06-27 09:49:31 97

原创 38#二叉树的深度

题意 给一个二叉树 求深度 思路 1、空节点返回层数为0; 2、返回本层深度:非空节点深度=左右节点中最大层数+1; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { pu

2021-06-18 16:37:38 96

原创 知识图谱记录

起源 web中的知识图谱 搜索引擎的进步: 从链接文本(string text document)到链接数据(object concept things data) 链接的类型: 通过不同的语义关系链接 提出: Google公司率先提出知识图谱(Knowledge Graph,KG)的概念,表示将在其搜索结果中加入知识图谱的功能。 发展历史 重要文章: -科学美国人 Semantic web ...

2021-06-18 16:36:52 150

原创 18#二叉树的镜像

题意 二叉树左右子树逆转 思路 递归 1、空节点时返回, 2、递归左节点 和右节点 注意用变量暂存结果 3、递归完成 将左右节点赋值 4、返回本节点给上层 注意 自下而上反转 先递归 后赋值 临时变量存结果 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val

2021-06-17 19:26:14 99

原创 34#第一个只出现一次的字符

题意 找出字符串中第一个只出现一次的字符,返回下标 思路 第一次遍历,用map计数 第二次找计数值等于1的 知识 map计数代码: map.put(str.charAt(i),map.getOrDefault(str.charAt(i),0)+1); String 转换char str.charAt(i) import java.util.*; public class Solution { public int FirstNotRepeatingChar(String str) {

2021-06-17 18:50:49 100

原创 48#不用加减乘除做加法

题意 题目所示 知识 原反补码 正数原反补相同 负数: 反码是原码除符号位之外取反 补码是反码加一 符号位 高位为符号位:1为负数 位运算 按位& ^ | 涉及负数都转化为补码 位运算在加法模拟中的应用/使用技巧 用& 和 <<一位 代表进位结果 用^求无进位结果 思路 用& 和 <<一位代表进位 用^求无进位结果 循环直至进位为0 public class Solution { public int Add(int

2021-06-17 11:24:01 154

原创 28#数组中出现次数超过一半的数字

题意 求数组的众数 思路 一次循环 map记录出现次数 并更新当前出现次数最多的值 知识 Map<Integer,Integer> hashMap=new HashMap<Integer,Integer>(); hashMap.put(var,hashMap.getOrDefault(var,0)+1); 代码 import java.util.HashMap; import java.util.Map; public class Solution { public int

2021-06-17 11:15:12 94

原创 20#包含min函数的栈

题意: 实现求最小值 且 操作时间复杂度都是 O(1) 的栈 push(value):将value压入栈中 pop():弹出栈顶元素 top():获取栈顶元素 min():获取栈中最小元素 知识: Stack<>s=new Stack<Integer>(); s.isEmpty(); s.push(node); s.peek() help.pop(); 思路: 辅助栈记录入栈顺序中的不递增数字。 即栈顶维护当前最小值。 出栈数字是辅助栈顶数字时,辅助栈顶也需要出栈。 入栈时判断是

2021-06-17 11:10:43 89

原创 16#合并两个排序的链表

题意: 输入两个单调递增的链表,输出两个链表合成后的链表,合成后的链表单调不减。 思路: 模拟链表操作 两个指针分别指向两个链表 比较当前位置的大小 选中小的加入新链表并下移 代码思路: 节点变量:head保存函数返回的新链表指针 before(应该改成last)用于新链表加入新节点时找到当前末尾节点 list1 list2指向两个节点未处理的节点位置 初始化头节点 当两个链表都不为空时,循环比较大小,选取新加入的节点。 有一个为空时,将余下节点加入 注意 判断条件的空指针异常 /* public cla

2021-06-17 11:02:03 137

原创 09#跳台阶扩展问题

题意: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: n=1,ans=1; n>1,ans=ans(跳到n-1)+ans(跳到n-2)+…+ans(跳到1) =前面累加和+1 代码思路: 从1阶情况循环计算 累加到n 两个变量:next记录当前的方法数,sum记录前面的累加和 next=sum+1; 进入下一个循环前再用sum+=next更新累加值 import java.util.ArrayList; public class

2021-06-17 10:50:01 154

原创 06#旋转数组的最小数字

题意: 给定一个非递减数组,将前面一部分元素搬到后面 找出最小元素 思路: 找第一个非递减数字(a[i]>a[i+1]) i+1就是所求。 特例/边界: 不递增:{1,1,1,1}//返回第一个数 没有搬动:{1,2,3,4}//返回第一个数 空数组:{}//返回0 import java.util.ArrayList; public class Solution { public int minNumberInRotateArray(int [] array) { if(a

2021-06-17 10:41:03 97

原创 05#用两个栈实现队列

题意: 用两个栈实现队列 思路: 入栈:往栈1中push 出栈:栈2为空,则将栈1的元素pop()后 push到栈2 栈2不空,则直接pop() import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); p

2021-06-17 10:32:19 91

原创 03#从尾到头打印链表

知识点: 容器工具类:Collections 反转List方法:Collections.reverse(List) /** public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ import java.util.ArrayList; import java.util.Collections

2021-06-17 10:24:59 87

空空如也

空空如也

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

TA关注的人

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