- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 【剑指Offer系列】38-输入abc输出a、b、c、ab、ac、bc、abc(通过StringBuilder的setLength()实现回溯)
输入abc输出其所有组合a、b、c、ab、ac、bc、abc:DFS
2020-09-15 19:37:52 497 1
原创 基排序
public class RadixSort { public static void main(String[] args) { int[] array = {7,112,6,21,22,330,10,5,88,91,15,3}; radix(array); System.out.println(Arrays.toString(array)); } private static void radix(int[] array) {
2020-09-15 09:38:20 271
原创 堆排序
public class HeapSort{ public static void main(String[] args) { int array[] = {4, 6, 8, 5, 9}; HeapSort heapSort = new HeapSort(); heapSort.heapSort(array); System.out.println(Arrays.toString(array)); } voi
2020-09-15 09:29:28 114
原创 快速排序
public class FastSort{ public static void main(String[] args) { int array[] = {19, 6, 22, 3, 9, 5, 23}; FastSort.fastSort(array, 0, array.length - 1); System.out.println(Arrays.toString(array)); } static void fastS
2020-09-15 09:28:32 105
原创 希尔排序
public class ShellSort{ public static void main(String[] args) { int array[] = {17,3,25,9,6,7}; ShellSort.shellSort(array); System.out.println(Arrays.toString(array)); } static void shellSort(int array[]) {
2020-09-15 09:27:41 100
原创 归并排序
public class MergeSort{ public static void main(String[] args) { int[] array = {17, 3, 25, 9, 6, 14, 2, 8}; int temp[] = new int[array.length]; MergeSort.mergeSort(array, 0, array.length - 1, temp); System.out.print
2020-09-15 09:26:53 86
原创 二分查找非递归
public class BinarySearch3{ public static void main(String[] args) { int array[] = {1, 3, 5, 7, 9, 9, 9, 9, 21, 33}; List<Integer> list = BinarySearch3.search(array, 9); System.out.println(list); } public sta
2020-09-15 09:24:48 107
原创 二分查找递归
public class BinarySearch2{ private static int array[] = {1, 3, 5, 7, 9, 9, 9, 9, 21, 33}; public static void main(String[] args) { List<Integer> resList = BinarySearch2.binary(array, 0, array.length - 1, 333); System.ou
2020-09-15 09:23:58 106
原创 【剑指offer系列】67-把字符串转换成整数(关键字:int最大值)
输入:"+123a "“-123a”“a123”“123a”输出123-1230123补充:大于2147483647 则取Integer.MAX_VALUE、小于-2147483648则取MIN_VALUEclass Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next();
2020-09-15 09:14:51 179
原创 【剑指offer系列】65-不使用+,-,*,/做加法运算(关键字:递归)
题目:不使用+,-,*,/做加法运算^ 异或,不同为1& 与,全1才1<<左移,相当于乘2public class Main65{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.
2020-09-15 09:12:17 101
原创 【剑指offer系列】64-求1+2+3···+n(关键字:三目运算符)
使用三目运算符计算1+2+3···+npublic class Main64{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(getSum(n)); } private static int getSum(int n) {
2020-09-15 09:11:15 121
原创 【剑指Offer系列】61-扑克牌中的顺子
从一副扑克牌(54张)中随机抽5张牌,判断这5张牌是否构成一个顺子,即是否连续。在扑克牌中,2~10为数字本身,A为1,J为11,Q为12,K为13,大小王可以看成任意数字。3、5个数中,除了大小王外,其它的数(可能5个、4个、3个),排序后,大的减小的,累和 <= 4,则为顺子。2、除了大小王外,其它任何数字,只要出现2次,就不是顺子。1、将大小王看做0,0。
2020-09-15 09:06:58 264 1
原创 【剑指offer系列】56-数组中只出现一次的两个数字(sort排序)
对数组进行sort排序,实现时间复杂度O(n)空间复杂度O(1)的查找数组中只出现一次的数字
2020-09-14 23:01:22 134 1
原创 【剑指Offer系列】54-二叉搜索树的第K大节点(list.get)
二叉搜索树的两个遍历特点1、中序遍历:单调递增(如果没有相同值元素)、2、后序列遍历结果postList,根据postList从右到左再创建二叉搜索树BST。再后序遍历此BST得到postList2,postList和postList2完全相同!!!
2020-09-14 22:59:33 149 1
原创 两个链表实现相加
class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}class Main {// public ListNode addTwoNumbers(ListNode l1, ListNode l2) {// ListNode startNode=new ListNode(0);//最后将会输出的链表// ListNode Nowl1=l1,Nowl2=l2,N
2020-09-14 22:56:43 655
原创 【剑指offer系列】47-礼物的最大值(关键字:动态规划)
思路:动态规划场景:1.计数2.求最值3.存在性四个步骤1.确定状态1.最后一步:理清楚最后一步问题2.自问题:进而找出它前一个(子问题)3.给出dp[i]、dp[i][j]所代表的含义2.转移方程1.找到当前问题和子问题的关系2.一般题目中的分类、情况、选择条件之类的语句,就是当前问题和子问题的关系,即当前是如何由之前确定的3。初始条件和边界条件1.初始条件:一般是dp[0],或者dp[0][0]2.边界条件:就是你状态转移方程中,涉及到数组越界的边界。
2020-09-14 22:43:21 151
原创 【剑指offer系列】44-数字序列中某一位的数字(字符串)
给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …] 中找出并返回第 n 位上的数字。解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …里是 0 ,它是 10 的一部分。
2020-09-14 22:37:36 163 1
原创 【剑指Offer系列】41-数据流中的中位数(大小顶堆结合)
中位数简介找出这组数据:23、29、20、32、23、21、33、25 的中位数。首先将该组数据进行排列(这里按从小到大的顺序),得到:20、21、23、23、25、29、32、33因为该组数据一共由8个数据组成,即n为偶数,故按中位数的计算方法,得到中位数,即第四个数和第五个数的平均数。midval = (23+25)/2 = 24找出这组数据:10、30、 20、 20、 20的中位数。首先将该组数据进行排列10、 20、 20、 20、 30因为该组数据一共由5个数据组成,即n
2020-09-14 22:34:25 261 1
原创 【剑指Offer系列】36-二叉搜素树与双向循环链表(有序、双向、循环)
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向循环链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
2020-09-13 09:47:19 119 1
编程开发-Java开发IDEA约束规范
2023-12-07
Java开发-导入导出excel-上传下载excel
2023-12-07
37.Java的反射.md
2019-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人