01 2021 档案
剑指 Offer 19. 正则表达式匹配
摘要:package jianzhioffer; public class test19 { public static void main(String[] args) { } /** * 如果 BB 的最后一个字符是正常字符,那就是看 A[n-1]A[n−1] 是否等于 B[m-1]B[m−1],相等
阅读全文
剑指 Offer 20. 表示数值的字符串
摘要:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 “1.为什么是啊???” class S
阅读全文
1128. 等价多米诺骨牌对的数量 - 找规律?
摘要:给你一个由一些多米诺骨牌组成的列表 dominoes。 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。 形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,
阅读全文
剑指offer67 - 把字符串转化成整数
摘要:首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后
阅读全文
剑指 Offer 16. 数值的整数次方 - 分成奇偶,以及对于负数的溢出单独提出来一个
摘要:class Solution { public double myPow(double x, int n) { if(n==0){ return 1; } if(n<0) { return 1/x*myPow(1 / x, -n-1); } return (n % 2 == 0) ? myPow(x
阅读全文
剑指 Offer 46. 把数字翻译成字符串 - 递归+动态规划
摘要:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 class Solution { public int transl
阅读全文
剑指 Offer 45. 把数组排成最小的数 - 模拟排序
摘要:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 思路:先转化成字符串,然后写一个新的Array.sort()的comparator,任意两个字符串o1,o2如果o1+o2>o2+o1,那么o1在o2前面,可以用compareTo实现 class Sol
阅读全文
1319.连通网络的操作次数-并查集
摘要:用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络
阅读全文
数字序列中某一位的数字
摘要:思路一:找规律 我们通过观察,可以发现以下规律: 对于第 n 位对应的数字,我们令这个数字对应的数为 target,然后分三步进行。 首先找到这个数字对应的数是几位数,用 digits 表示; 然后确定这个对应的数的数值 target; 最后确定返回值是 target 中的哪个数字。 举个栗子: 比
阅读全文
989.数组形式的整数加法 - 大数加法
摘要:class Solution { public List<Integer> addToArrayForm(int[] A, int K) { // 初始化参数 List<Integer> res = new ArrayList<Integer>(); int n = A.length; // 1.
阅读全文
java多线程 - 同步安全
摘要:1.不加任何同步措施 package jianzhioffer; //出现不安全问题 /** * 吐钱成功,吐出钞票:800.0 吐钱成功,吐出钞票:800.0 余额为:200.0 余额为:-600.0 */ class Account{ public String accountNo; publi
阅读全文
剑指offer 48 -最长不含重复字符的子字符串 动态规划
摘要:package jianzhioffer; import java.util.HashMap; import java.util.Map; public class test48 { public static void main(String[] args) { String s="pwwkew"
阅读全文
剑指offer 43 - 1-n整数中1出现次数
摘要:想法有了但是没实现出来: 按位找,从个位到最高位,每一位1个数之和 具体来讲,分成当前位curr,当前位之前所有位:高位high,以及当前位之后所有位:低位low 维护一个i,i=1表示当前个位,i=10十位,以此类推 那么,对于个位上的1,我们首先要看,这个数有多少个10,因为0-9十个数里面有1
阅读全文
剑指offer-29 顺时针打印矩阵 - 模拟
摘要:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 思路就是不断移动上下左右的边界,按照上右下左的方式进行遍历 class Solution { public int[] spiralOrder(int[][] matrix) { List<Integer> list=new Array
阅读全文
二叉树后续遍历序列-递归
摘要:想法都对了但是没写明白,不能把left和right分开看 //最后一个节点是根节点,从开始找第一个大于根的是右子树起始, //划分左右子树递归进行判断,如果左有大于根的或者右有小于根的,false class Solution { public boolean verifyPostorder(int
阅读全文
剑指offer-51 数组中的逆序对
摘要://在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。//暴力方法超时,考虑归并排序class Solution { public int reversePairs(int[] nums) { if(nums==null||n
阅读全文
68-二叉树最近公共节点
摘要:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */
阅读全文
剑指 Offer 60. n个骰子的点数 - 动态规划
摘要:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 class Solution { public double[] dicesProbabi
阅读全文
连接所有点的最小费用 - 最小生成树Prim
摘要:给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。 请你返回将所有点连
阅读全文
java序列化Serialize
摘要:对象序列化:Serialize-将一个java对象写入IO流中 对象反序列化:Deserialize-从IO流中恢复java对象 类可序列化:实现接口Serializable或Externalizable class Person implements Serializable { public S
阅读全文
剑指 Offer 31. 栈的压入、弹出序列 - 模拟栈
摘要:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 if(p
阅读全文
剑指Offer14-I 剪绳子 - 动态规划
摘要:/** * 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。 * 请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、
阅读全文
账户合并-并查集
摘要:class Solution { Map<String,String> emails; public List<List<String>> accountsMerge(List<List<String>> accounts) { if(accounts.size()==1){ return acco
阅读全文
剑指offer41-数据流的中位数-大顶堆小顶堆
摘要:class MedianFinder { List<Integer> list2; /** initialize your data structure here. */ public MedianFinder() { list2=new ArrayList<>(); } public void a
阅读全文
剑指offer65-不用加减乘除做加法 位运算
摘要://写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号 class Solution { public int add(int a, int b) { while(b!=0){ int plus=(a^b); b=(a&b)<<1; a=plus; }
阅读全文
剑指offer59-II-队列的最大值-双向队列Deque
摘要:class MaxQueue { Queue<Integer> q1; Deque<Integer> q2; public MaxQueue() { q1=new LinkedList(); q2=new LinkedList(); } public int max_value() { if(q2.
阅读全文
剑指offer66-构建乘积数组-上/下三角矩阵
摘要:class Solution {//给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。//先下三角计算0
阅读全文
并查集-打砖块-没懂
摘要:public class test11 { public static void main(String[] args) { int [][]grid={{1,0,0,0},{1,1,0,0}}; int [][]hits={{1,1},{1,0}}; int []result=hitBricks(
阅读全文
并查集-移除最多的同行或同列石头
摘要:/** * n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。 给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头的位置,返回 可以移除的
阅读全文
剑指pffer-49. 丑数,指针,动态规划
摘要:package JianZhioffer; //我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 // 1.我们将前面求得的丑数记录下来,后面的丑数就是前面的丑数*2,*3,*5 // 2.但是问题来了,我怎么确定已知前面k-1个丑数,
阅读全文
剑指offer-36.二叉搜索树与双向链表-中序遍历
摘要:package JianZhioffer; //剑指 Offer 36. 二叉搜索树与双向链表 /** * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 */ //中序遍历,二叉搜索树,中序遍历从小到大 import java
阅读全文
冗余链接-684-并查集
摘要:package Leetcode; //冗余链接 /** * 在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边
阅读全文
Java - Annotation
摘要:1. @Override重写 用来检查是否重写父类方法,拼写错误 @Deprecated 标识方法过时,当其他程序使用被标识过时的类时,编译器警告 @SuppressWarnings 屏蔽编译器警告 @SuppressWarnings(value = "unchecked") 2. 自定义Annot
阅读全文
剑指offer30-包含min函数的栈
摘要:class MinStack { /** initialize your data structure here. */ Stack<Integer> A, B; public MinStack() { A = new Stack<>(); B = new Stack<>(); } //这里要注意始
阅读全文
剑指offer09-两个栈实现队列
摘要:import java.util.Stack; class CQueue { //要注意每一块写什么,构造函数初始化两个栈为linkedlist Deque<Integer> stack1; Deque<Integer> stack2; public CQueue() { stack1=new Li
阅读全文
拓扑排序-1203. 项目管理。。。没看懂
摘要:package Leetcode; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; /** * 公司共有 n 个项目和 m 个小组,每个项目
阅读全文
1202. 交换字符串中的元素-并查集
摘要:import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.PriorityQueue; import java.util.Qu
阅读全文
68-I 二叉搜索数最近公共祖先
摘要:package JianZhioffer; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util
阅读全文
反序列化二叉树-队列
摘要:package Leetcode; import java.util.LinkedList; import java.util.Queue; //请实现两个函数,分别用来序列化和反序列化二叉树。 public class test37 { public static void main(String
阅读全文
二叉树中和为某一值的路径 - 回溯
摘要:package Leetcode; import java.util.*; //输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 //回溯 public class test34 { public static voi
阅读全文
深拷贝复杂链表 - 哈希
摘要:package JianZhioffer; import java.util.HashMap; import java.util.Map; /** * 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random
阅读全文
机器人运动范围 - DFS
摘要:package JianZhioffer; /** * 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18
阅读全文
滑动窗口最大值-双向队列
摘要:package Leetcode; import java.util.LinkedList; /** * 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。(时间复杂
阅读全文
|
|
|