
java
文章平均质量分 52
不想秃头Q-Q
这个作者很懒,什么都没留下…
展开
-
双端队列Deque的常用方法
在队首添加元素在队尾添加元素在队首添加元素, 添加成功返回true在队尾添加元素, 添加成功返回true移除队首元素并返回移除队尾元素并返回移除队首元素并返回移除队尾元素并返回返回队首元素返回队尾元素返回队首元素返回队尾元素...原创 2022-06-04 11:17:09 · 413 阅读 · 0 评论 -
Java中的Arrays.copyOfRange()方法
Arrays.copyOfRange()方法:Arrays.copyOfRange(T[] arr, int from, int to)将一个数组arr,从from开始复制,复制到to,生成一个新的数组注意: 是左闭右开区间, 即包括from, 不包括to原创 2022-04-18 17:06:07 · 1605 阅读 · 0 评论 -
【七个排序】选择排序、冒泡排序、快速排序、插入排序、希尔排序、堆排序、归并排序
七个排序有关代码选择排序冒泡排序快速排序非递归递归插入排序希尔排序堆排序归并排序非递归递归选择排序import java.util.Arrays;//选择排序//(一直拿后边的元素去比较边界元素)public class selectSort { public static void selectSort(int[] arr){ //创建一个变量bound表示已排序区间和待排序区间的边界, //[0, bound)以排序区间 //[boun原创 2022-03-19 15:20:09 · 1524 阅读 · 0 评论 -
String, StringBuffer和StringBuilder的区别
StringString类是一个不可变类, 创建String对象后, 该对象中的字符串是不可改变的由于是不可改变的, 所以当一个字符串经常被修改时, 最好使用StringBuffer或者StringBuilder实现StringBufferStringBuffer类型的字符串是可变的线程安全, 因为StringBuffer中的方法大都采用了synchronized关键字进行修饰在单线程中, StringBuffer每次需要判断锁, 所以效率相对较低多线程环境下涉及到共享变量的插入和删除操原创 2022-02-28 10:23:03 · 91 阅读 · 0 评论 -
Java中str.charAt(i);的作用
假如:String str = "abcd";那么:str.charAt(0)为"a"str.charAt(1)为"b"str.charAt(2)为"c"str.charAt(3)为"d"原创 2022-01-13 16:09:27 · 1264 阅读 · 0 评论 -
关于面试中链表必考经典笔试题--小总结
以下总结的是面试中必然会考到的经典的链表题,欢迎阅读~1. 删除链表中等于给定值val的所有节点LeetCode 203.移除链表元素class Solution { public ListNode removeElements(ListNode head, int val) { if(head == null){ return null; } if (head.val == val){ .原创 2022-01-05 17:43:49 · 355 阅读 · 0 评论 -
Java时间复杂度与空间复杂度
时间复杂度1. 概念一个算法所花费的时间与其中语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度.2.时间复杂度存在情况时间复杂度存在最好,平均和最坏情况.最坏情况: 任意输入规模的最大运行次数(上界)平均情况: 任意输入规模的期望运行次数最好情况: 任意输入规模的最小运行次数(下界)例如: 在一个长度为N数组中搜索一个数x最好情况: 1次找到最坏情况: N次找到平均情况: N/2次找到平时我们主要着重于时间复杂度的平均情况和最坏情况.在实际中一般情原创 2021-12-30 15:50:35 · 178 阅读 · 0 评论 -
Java双指针有关
剑指offer21. 调整数组顺序使奇数位于偶数前面class Solution { public int[] exchange(int[] nums) { int i = 0, j = nums.length - 1, tmp; while(i < j){ while(i < j && (nums[i] & 1) == 1)//如果是奇数就跳过该数,直到找到偶数 i+.原创 2021-12-26 16:37:31 · 289 阅读 · 0 评论 -
Java二分法查找
二分法查找过程:找到中间的关键字比较查找的关键字与中间关键字的大小关系如果相等,那么就算是已找到如果查找的关键字小于中间的关键字则在前半部分进行同样的存储如果查找的关键字大于中间的关键字则在后半部分进行同样的存储二分法查找要求:顺序存储元素有序剑指offer11. 旋转数组的最小数字class Solution { public int minArray(int[] numbers) { int left = 0; int ri.原创 2021-12-25 09:48:11 · 633 阅读 · 0 评论 -
关于字符串---ToCharArray()和ToString()
剑指offer05. 替换空格//在java中,字符串被设计成不可变类型//即无法直接修改字符串的某一位字符,需要新建一个字符串实现class Solution11 { public String replaceSpace(String s) { StringBuilder res = new StringBuilder(); for(Character c : s.toCharArray()){ //toCharArray()将字.原创 2021-12-19 21:33:14 · 789 阅读 · 0 评论 -
二维数组中的查找(二叉搜索树有关)
剑指offer04. 二维数组中的查找//将矩阵逆时针旋转45°,就会发现其类似于二叉搜索树(左节点比根节点小,右大)//从根节点开始搜索,若target<flag,则说明target一定在flag的行上方,消去flag所在行//从根节点开始搜索,若target>flag,则说明target一定在flag的列右方,消去flag所在列class Solution10 { public boolean findNumberIn2DArray(int[][] matrix, in.原创 2021-12-18 21:45:29 · 430 阅读 · 0 评论 -
巧用n&n-1(汉明距离, 汉明重量)
剑指offer15 . 二进制中1的个数//这个办法比较妙,妙在n &= n - 1,//将n最右位的1之后的0变为1,该1变为0;(即n-->n - 1)//然后 & 操作n最右边的1变为0;(即n & n - 1)public class Solution { public int hammingWeight(int n) { int res = 0; while(n != 0){ res++;.原创 2021-12-15 22:50:46 · 136 阅读 · 0 评论 -
栈与队列(随记)
感觉好久没有看栈与队列这块的知识了,遇到一个在本菜鸡看来比较有意思的题~姑且先记录在这。栈:先进后出队列:先进先出两个栈实现一个队列说实话,这个题乍一看我没怎么看懂,再乍一看还是没有看懂…这就很让人心梗了但是呢,这个题总而言之言而总之,就是利用两个栈实现一个队列,而且栈刚好是先进后出,队列是先进先出CQueue表示新建一个CQueue对象appendTail也就是加入队尾deleteHead也就是删除队首元素这时候A和B两个栈就派上用场啦~很容易就可以想到利用A栈储存元素(完原创 2021-12-10 21:05:12 · 217 阅读 · 0 评论 -
HashMap与HashSet(随记)
HashMapHashSet实现了Map接口实现了Set接口存储键值对仅存储对象调用put()方法向map中添加元素调add()方法向set中添加元素HashMap使用键(Key)计算HashcodeHashSet使用成员对象计算Hashcode值之后再次遇到再补充细节找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请...原创 2021-12-03 20:42:06 · 853 阅读 · 0 评论 -
关于斐波那契数列那些事儿~
斐波那契数列C语言中:FIB数列中文名:斐波那契数列别名:黄金分割数列,兔子数列该数列:0、1、1、2、3、5、8、13…斐波那契数列以如下被以递推的方法定义:F (0)=0F (1)=1F (n)= F (n - 1)+ F (n - 2)(n ≥ 2)我们最常见的就是直接题目要求求斐波那契数列的第n项,这类是最简单的.那么下列所求的斐波那契数列要求有所不同.1.求斐波那契数列的第n项,答案需要取模le9+7(1000000007),如计算初始结果为:1000000008,请返回原创 2021-12-02 21:20:48 · 694 阅读 · 0 评论 -
Java多线程超全面详解(确定不点进来看看?)
什么是进程?什么是线程?什么是多线程?想要了解什么是多线程,就得知道什么是线程。想要了解什么是线程,就得知道什么是进程。想要了解什么是进程,就得知道什么是一个程序。那么我们先从程序慢慢说起。程序程序表现为系统中的一个可执行文件(该可执行文件为静态)。说明:双击打开某个文件,不意味着这个文件就是程序进程程序(静态的可执行文件)运行起来之后,就是一个进程(运行态的程序)。或者对于操作系统来说,一个任务就是一个进程。补充:进程是作为系统分配资源的最小单位(CPU,内存等等)一个进原创 2021-11-30 11:35:13 · 3676 阅读 · 0 评论 -
Java操作系统粗略介绍
1. 冯·诺依曼体系结构CPU:指令类型:运算,控制,数据传输包含的组件:(1)运算器:做计算用(2)控制器:控制程序流向(条件判断,循环操作等等)(3)控制器和运算器的关系:2.操作系统(1)概念任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。操作系统包括:内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库,shell程序等等)关于函数库的理解:系统提供的对某个广泛使用的操作接口。(如文件读取/写入,网卡读写数据)(广泛使用的操作接口:原创 2021-11-28 11:11:58 · 2289 阅读 · 0 评论