剑指offer
1
618GLOAL_COOK2237
未来由你选择!
展开
-
统计字符串出现个数
private static void countString(String str){ HashMap<Character,Integer> map=new HashMap<>(); char[] chars = str.toCharArray(); for (char c : chars) { if (map.containsKey(c)){ Integer value = m原创 2021-09-08 09:56:17 · 113 阅读 · 0 评论 -
算法题小技巧
1.set重复的元素会返回false的:原创 2021-08-29 16:22:09 · 165 阅读 · 0 评论 -
leetcode 146. LRU 缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最原创 2021-07-18 15:13:23 · 88 阅读 · 0 评论 -
leetcode 54. 螺旋矩阵
看这个解析:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/solution/mian-shi-ti-29-shun-shi-zhen-da-yin-ju-zhen-she-di/class Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length == 0) return new int[0]; .原创 2021-07-18 13:10:16 · 112 阅读 · 0 评论 -
NC41最长无重复子数组
https://blog.nowcoder.net/n/8eb4085a68d243358ac7778fc2e59bb8import java.util.*;import java.util.HashMap;public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) {原创 2021-07-17 17:12:18 · 153 阅读 · 0 评论 -
4.重建二叉树
https://blog.nowcoder.net/n/2cbe9f458bd74be1a910aa6d071aa411import java.util.Arrays;/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */pu原创 2021-07-17 15:32:02 · 79 阅读 · 0 评论 -
209. 长度最小的子数组
还不是很懂,看这个题解:https://leetcode-cn.com/problems/minimum-size-subarray-sum/solution/hua-dong-chuang-kou-209-chang-du-zui-xia-ljne/原创 2021-07-14 17:23:19 · 85 阅读 · 0 评论 -
判断链表中是否有环、56链表中环的入口结点
参考:https://blog.csdn.net/weixin_43695091/article/details/88372778一、判断链表中是否有环这里说的环都是从最后一个开始连的方法1:利用快慢指针(空间复杂度为O1):声明两个指针,一个指针走一次经过两个节点(快指针quick),另一个走一次经过一个节点(慢指针slow);方法说明:快指针走的比较快,若链表有环,则一定会追上慢指针,若无环,则会走到链表末端。public class Solution { public bool原创 2021-06-25 15:21:51 · 102 阅读 · 0 评论 -
40、数组中只出现一次的两个数字
package com.yuan.day2;/** * @author QLBF * @version 1.0 * @date 2021/6/22 19:44 */import java.util.*;import java.util.Arrays;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组.原创 2021-06-22 20:01:58 · 78 阅读 · 0 评论 -
38、树的深度
树的深度原创 2021-06-19 21:32:28 · 79 阅读 · 0 评论 -
26、树的子结构
代码来源牛客网题解public class Solution { public static boolean HasSubtree(TreeNode root1, TreeNode root2) { boolean result = false; //当Tree1和Tree2都不为零的时候,才进行比较。否则直接返回false if (root2 != null && root1 != null) { //如果找到了对应Tree2的根节点的点 if(ro.原创 2021-06-17 17:39:48 · 88 阅读 · 0 评论 -
21、栈的压入、弹出序列
思路:新建一个栈,将数组A压入栈中,当栈顶元素等于数组B时,就将其出栈,当循环结束时,判断栈是否为空,若为空则返回true.(好好体会其中精髓)import java.util.ArrayList;import java.util.Stack;public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { if(pushA==null || popA==null){ r原创 2021-06-15 20:15:22 · 101 阅读 · 0 评论 -
B树、B+树
一、B树原创 2021-06-15 11:39:42 · 120 阅读 · 0 评论 -
二叉排序树、二叉平衡树
一、二叉排序树(二叉查找、搜索树)删除分三种情况:二、二叉平衡树还是会满足二叉查找树的性质所以平衡因子可以为-1、0、1因此只要调整最小平衡二叉树平衡就能使得整颗树平衡,调整规则等下说LR和RL麻烦点(分两步旋转):RL:小结:练习:...原创 2021-06-15 10:38:43 · 171 阅读 · 0 评论 -
11、旋转数组的最小数字
参考牛客网题解:https://blog.nowcoder.net/n/dcb0f2e6ffd44e1895b7a5297e362778?f=comment分析:二分查找变种,没有具体的值用来比较。那么用中间值和高低位进行比较,看处于递增还是递减序列,进行操作缩小范围。处于递增:low上移处于递减:high下移(如果是high-1,则可能会错过最小值,因为找的就是最小值)其余情况:low++缩小范围特殊情况:import java.util.ArrayList;public class S原创 2021-06-13 11:28:07 · 93 阅读 · 0 评论 -
59.对称的二叉树
package com.yuan.demo6;/** * @author QLBF * @version 1.0 * @date 2021/6/10 9:29 */class TreeNode{ String val; TreeNode left; TreeNode right; public TreeNode(String val) { this.val = val; }}public class test6 { pu.原创 2021-06-10 09:41:49 · 87 阅读 · 0 评论 -
二分查找java
package com.yuan;/** * @author QLBF 二分查找的两种方法,查找有序的数组,返回下标 * @version 1.0 * @date 2021/5/31 18:52 */public class demo8 { //方法1:非递归 public static int findByErfen(int[] array,int key){ int low=0; int high=array.length-1;原创 2021-05-31 19:19:32 · 96 阅读 · 0 评论 -
27、二叉树的镜像
package com.yuan;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.concurrent.CopyOnWriteArrayList;/** * @author QLBF 二叉树的镜像 * @version 1.0 * @date 2021/5/30 8:38 */class TreeN原创 2021-05-30 09:03:38 · 61 阅读 · 0 评论 -
25、合并两个有序链表、合并两个数组
package com.yuan;import java.util.ArrayList;import java.util.List;/** * @author QLBF 合并两个有序链表 并保持单调性 * @version 1.0 * @date 2021/5/29 16:20 */class ListNode6{ int val; ListNode6 next; public ListNode6(int val) { this.val = v原创 2021-05-29 16:45:42 · 68 阅读 · 0 评论 -
24、输出反转后的链表
package com.yuan;import java.util.ArrayList;/** * @author QLBF 反转链表 * @version 1.0 * @date 2021/5/29 15:27 */class ListNode5{ int val; ListNode5 next; public ListNode5(int val) { this.val = val; }}public class demo5 {原创 2021-05-29 15:48:47 · 101 阅读 · 0 评论 -
22、求链表中倒数第 K 个节点
package com.yuan;/** * @author QLBF * @version 1.0 * @date 2021/5/29 11:06 */class ListNode2{ int val; ListNode2 next; public ListNode2(int val) { this.val = val; }}public class demo4 { public static ListNode2 CountDo.原创 2021-05-29 11:27:08 · 69 阅读 · 0 评论 -
18、O(1)时间删除链表节点
package com.yuan;import java.util.ArrayList;import java.util.List;import java.util.Stack;import java.util.concurrent.CopyOnWriteArrayList;/** * @author QLBF O(1)时间删除链表节点 * @version 1.0 * @date 2021/5/28 20:05 */class ListNode1{ int val;原创 2021-05-29 10:42:02 · 80 阅读 · 0 评论 -
9、用两个栈实现队列
package com.yuan;import java.util.Stack;/** * @author QLBF * @version 1.0 * @date 2021/5/24 15:50 */public class StackToQueue { private Stack<Integer> stack1; private Stack<Integer> stack2; public StackToQueue() {原创 2021-05-24 16:01:30 · 84 阅读 · 0 评论 -
6、从尾到头打印链表
使用栈:package com.yuan;import java.util.ArrayList;import java.util.List;import java.util.Stack;import java.util.concurrent.CopyOnWriteArrayList;/** * @author QLBF * @version 1.0 * @date 2021/5/24 13:37 *///从尾打印链表class ListNode{ int val;原创 2021-05-24 13:48:44 · 87 阅读 · 0 评论 -
树的前、中、后、层次遍历
package com.yuan;/** * @author QLBF 树的前中后遍历 * @version 1.0 * @date 2021/5/24 12:17 */class TreeNode{ String val; TreeNode left; TreeNode right; public TreeNode(String val) { this.val = val; }}public class TreeDemo { .原创 2021-05-24 12:46:05 · 115 阅读 · 0 评论 -
冒泡排序、简单选择排序、直接插入排序、折半插入排序、快速排序、归并排序、堆排序
/** * @author QLBF * @version 1.0 * @date 2021/4/10 15:30 *///冒泡排序public class Maopao { public static int[] paixu(int []array){ for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1-i; j++) {原创 2021-04-10 15:54:34 · 467 阅读 · 0 评论