
java
十三幺Shisanyao
我是真爱粉,真爱粉爱学大数据
展开
-
统计字符出现的次数
给定一个字符串, 统计每个字符出现的次数原创 2022-08-06 10:00:27 · 262 阅读 · 0 评论 -
获取两个字符串中最长相同子串
获取两个字符串中最长相同子串。比如: str1 = "abcwerthelloyuiodef ";str2 = “cvhellobnm” 提示:将短的那个串进行长度依次递减的子串与较长的串比较。 int length = str2.length(); // 用于控制子串的长度原创 2022-07-30 13:10:34 · 2661 阅读 · 0 评论 -
排序算法(三)快速排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列...原创 2022-07-29 18:03:50 · 144 阅读 · 0 评论 -
排序算法(二)直接选择排序
将待排序的元素分为已排序(初始为空)和未排序两组,依次将未排序的元素中值最小的元素放入已排序的组中。原创 2022-07-27 13:26:33 · 245 阅读 · 0 评论 -
排序算法(一)冒泡排序
相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。原创 2022-07-27 13:14:56 · 228 阅读 · 0 评论 -
求最大值最小值&数组反转
求最大值最小值&数组反转。原创 2022-07-27 13:02:59 · 169 阅读 · 0 评论 -
打印杨辉三角
打印杨辉三角。原创 2022-07-26 20:49:21 · 107 阅读 · 0 评论 -
二叉树 二叉排序树的创建
将某个数作为根节点,比根大的放在根节点的右子叶,比根大的放在根节点的右子叶,每一个叶节点作为新的根节点进行递归,就会得到按照数大小排列的树。原创 2022-07-26 19:58:49 · 483 阅读 · 0 评论 -
数据结构 有效括号序列
给出一个仅包含字符’(‘,’)‘,’{‘,’}‘,’[‘和’]',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。数据范围:字符串长度 0\le n \le 100000≤n≤10000要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)示例1输入:“()[]{}”返回值:true示例2输入:“[]”返回值:true示例3输入:“([)]”返回值:false方法一:...原创 2022-07-23 20:57:15 · 573 阅读 · 0 评论 -
单链表的创建
单链表的创建。原创 2022-07-20 15:01:15 · 115 阅读 · 0 评论 -
剑指Offer算法笔记(Java) 删除链表的节点
删除一个链表节点,肯定是断掉它的前一个节点指向它的指针,然后指向它的后一个节点,即越过了需要删除的这个节点。既然是整个链表元素都不相同,我们要删除给定的一个元素,那我们首先肯定要找到这个元素,然后考虑删除它。给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为2->1->9。给定你链表中值为1的第三个节点,那么在调用了你的函数之后,该链表应变为2->5->9。给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。...原创 2022-07-19 21:00:49 · 862 阅读 · 0 评论 -
剑指Offer算法笔记(Java)数值的整数次方
数据范围∣base∣≤100,∣exponent∣≤100,保证最终结果一定满足∣val∣≤104。时间复杂度O(log_2n),其中n为所求的次方数,快速幂相当于对求幂使用二分法。遍历次方数的次数,指数0,不断累乘底数。时间复杂度O(n),其中n为所求的次方数,一共需要乘nnn次。进阶空间复杂度O(1),时间复杂度O(n)空间复杂度O(1),常数级变量,无额外辅助空间。空间复杂度O(1),常数级变量,无额外辅助空间。2的-2次方等于1/4=0.25。...原创 2022-07-16 21:39:57 · 198 阅读 · 0 评论 -
剑指Offer算法笔记(Java) 打印从1到最大的n位数
既然是从1开始顺序输出到n位数的最大值,一般来说nnn位数最大就是n个9,这样不方便于计算,可以直接遍历到n+1位的最小值结束,即10^n。输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。step2从1遍历到10^n-1,将所有数字顺序加入数组。step1从1开始连乘10或者直接用次方计算10^n。...原创 2022-07-15 12:22:47 · 277 阅读 · 0 评论 -
剑指Offer算法笔记(Java)二进制中1的个数
我们都只知道数字1与数字相位与运算,其实只是最后一位为1就是1,最后一位为0就是0,这样我们只需要将数字1移位运算,就可以遍历二进制的每一位,再去做位与运算,结果为1的就是二进制中为1的。因为每次运算会使得n的最低位的1被翻转成0,因此运算次数就等于n的二进制位中1的个数,由此统计1的个数。时间复杂度O(log2n),n为数字的大小,循环次数等于nnn的二进制位中1的个数,最坏情况下n的二进制位全部为1,也即开一个2的log运算。n&(n−1),会将n的二进制中最低位由1变成0。...原创 2022-07-14 21:07:59 · 827 阅读 · 0 评论 -
剑指Offer算法笔记(Java)剪绳子
11.剪绳子描述给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m原创 2022-07-13 12:21:19 · 335 阅读 · 0 评论 -
剑指Offer算法笔记(Java)矩阵中的路径
请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。...原创 2022-07-11 20:33:22 · 241 阅读 · 0 评论 -
栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。返回值:true说明:可以通过push(1)=>push(2)=>push(3)=>push(4)=>pop()=>push(5)=>pop()=>pop()=>pop()=>pop()这样的顺序得到[4,5,3,2,1]这个序列,...原创 2022-07-08 21:03:13 · 151 阅读 · 0 评论 -
剑指Offer算法笔记(Java)二叉树的下一个结点
给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示...原创 2022-07-07 21:00:13 · 95 阅读 · 0 评论 -
实现一个栈
请你实现一个栈。操作:push x:将 加x\x 入栈,保证 x\x 为 int 型整数。pop:输出栈顶,并让栈顶出栈top:输出栈顶,栈顶不出栈原创 2022-07-06 22:01:18 · 1049 阅读 · 0 评论 -
剑指Offer算法笔记(Java)重建二叉树
给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。原创 2022-07-06 17:14:31 · 421 阅读 · 0 评论 -
剑指Offer算法笔记(Java)从尾到头打印链表
4.从尾到头打印链表描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1输入:{1,2,3}返回值:[3,2,1]示例2输入:{67,0,24,58}返回值:[58,24,0,67]题解一、非递归listNode 是链表,只能从头遍历到尾,但是输出却要求从尾到头,这是典型的"先进后出",我们可以想到栈!ArrayList 中有个方法是原创 2022-04-27 13:54:07 · 109 阅读 · 0 评论 -
剑指Offer算法笔记(Java)替换空格
3.替换空格描述请实现一个函数,将一个字符串s中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。数据范围:0 ≤ len(s) ≤ 1000 。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。示例1输入:“We Are Happy”返回值:“We%20Are%20Happy”示例2输入:" "返回值:“%20”题解解法一:暴力法public static String replaceSp原创 2022-04-27 08:29:49 · 158 阅读 · 0 评论 -
剑指Offer算法笔记(Java)二维数组中的查找
2.二维数组中的查找描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。数据范围:矩阵的长宽满足 0 <= n,m < =5000≤n,m≤5原创 2022-04-25 16:22:54 · 137 阅读 · 0 评论 -
剑指Offer算法笔记(Java)数组中重复的数字
标题1. 数组中重复的数字描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1数据范围:0\le n \le 10000 \0≤n≤10000进阶:时间复杂度O(n)\O(n) ,空间复杂度O(n)\O(n)标题示例1输入:[2,3,1,0,2,5,3]返回原创 2022-04-24 14:02:20 · 132 阅读 · 0 评论 -
Spring学习——IOC容器(一)
2.IOC容器1.IOC容器1.什么是IOC(控制反转)(1) 把对象创建和对象之间的调用过程,交给Spring进行管理(2) 使用IOC目的:为了降低耦合度(3)人们案例就是IOC实现2.IOC底层原理xml解析、工厂模式、反射(1) .xml解析xml配置文件,配置创建的对象<bean id=" " class=" "></bean>(2).工厂模式定义一个中间静态函数,降低其耦合度(3).反射通过反射创建对象Class xx=Class.f原创 2021-09-14 12:44:43 · 132 阅读 · 0 评论