- 博客(14)
- 收藏
- 关注
原创 ArrayList扩容机制
ArrayList扩容机制源码分析首先在这里纠正一个问题,我发现很多博文在介绍ArrayList调用无参构造时,初始容量为10。其实这里是有问题的。实际调用了无参构造初始容量为0。来看源码 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }这段代码很简单,很容易理解,就是将DEFAULTCAPACITY_EMPTY_ELEMENTDATA赋值给elementData。那
2022-02-22 21:57:12
477
1
原创 整数反转-力扣
整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。示例 :输入:x = 123 输出:321输入:x = -123 输出:-321此题主要难点在前后反转之后会造成类型溢出。第一种解法:将输入的整形先转化为字符串String,在从后向前进行遍历。class Solution { public int reverse(int x) {
2022-02-07 21:21:04
326
原创 全排列问题-DFS算法
全排列1.不重复的数进行全排列public class MainTest01 { static int n=3; private static int[] arr= {1,2,3}; private static int[] flag=new int[n]; private static int[] a=new int[n]; public static void dfs(int x) { if(x==arr.length) { for (int i = 0; i < a.l
2022-02-05 18:07:43
839
原创 简易版的计算器
简易版的计算器就不多说了,很简单,直接上代码。(注意在整个运算中没有涉及浮点数)public class StackTest3 { private static Stack<Character> s1=new Stack<Character>(); //符号栈 private static Stack<Integer> s2=new Stack<Integer>(); //数字栈 public static void main(Strin
2022-02-04 13:33:32
453
原创 KMP字符串匹配算法
KMP字符串匹配算法 有关KMP算法的博文也是比较多的,但大多都是比较理论化的讲解,数学功底比较差的阅读起来也是相当吃力,今天来写一个比较通俗易懂的版本。 KMP算法实际上是利用了一个a=b,b=c,那么a也就等于c的思想。首先是有一个字符串子串的匹配表。这个表实际就是用来记录子串中每一段串重复的字符个数,这样说起来可能很抽象,看个例子。已知子串为:ABCDABD &nbs
2022-02-03 15:08:19
513
原创 插入区间 - 力扣
算法题–插入区间题目:给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,2],[3,10],[12,16]]题目分析:此题目给出两个是数组,将两个数组进行合并,首先来看示例中的合并特点,输出的结果中没有重叠的区间。随后来看,要让两个数组
2022-01-05 16:23:20
596
原创 埃氏筛选法
埃氏筛选法思想:从2到n,2是最小的素数,将2的倍数划掉,最小的就剩下3,3也是素数,那将3的倍数也划掉,以此类推。直接看代码```c#include<stdio.h>int n=100000;int main(){ int flag[n]; for(int i=0;i<n;i++){ flag[i]=1; } flag[0]=flag[1]=0; for(int i=2;i<n;i++){ if(flag[i]==1){ printf("%d\
2021-12-25 21:19:05
1301
2
原创 回文链表
回文链表编写一个函数,检查输入的链表是否是回文的。第一种解法:利用栈来进行存储节点值,因为栈的先进后出特性。 public boolean isPalindrome(ListNode head) { Stack<Integer> s=new Stack(); ListNode node=head; while(node!=null){ s.push(node.val); node=no
2021-09-02 17:25:33
117
原创 搜索二维矩阵 II
搜索二维矩阵编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:1.每行的元素从左到右升序排列。2.每列的元素从上到下升序排列。第一种解法利用二分查找此方法简单就不过多讲解 public boolean searchMatrix(int[][] matrix, int target) { for(int i=0;i<matrix.length;i++){ int l
2021-09-01 23:10:55
85
原创 创建线程的四种方式
创建线程的四种方式一:继承Thread类来创建线程class MyThread extends Thread{ public void run() { for (int i = 0; i < 25; i++) { System.out.println(Thread.currentThread().getName()+" "+i); } }}public class ThreadTest { public static void main(String[] args) {
2021-08-26 22:57:39
122
原创 买卖股票的最佳时机
**买卖股票的最佳时机**给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。1.方法一:爆破时间复杂度为o(n^2) public int maxProfit(int[] prices) { int temp=0;
2021-08-25 23:45:33
106
原创 java技术总结之路--接口与抽象类
接口与抽象类自己对抽象类和接口的区别进行了总结。首先来看抽象类public abstract class Test01 { //普通变量 public int x=1; //无参构造 public Test01(){ System.out.println("无参构造方法"); } //有参构造 public Test01(int x){ this.x=x; System.out.println("有参构造方法"+this.x); } //抽象方法 public ab
2021-08-13 23:26:01
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人