- 博客(15)
- 收藏
- 关注
原创 分治法求最大子序列和
从中间往两边找!!public class fenzhi { public static void main(String[] args) { int[] arr=new int[]{-3,4,5,-2,-1,2,6,-2}; int fenzhi = MaxSize(arr, 0, arr.length - 1); System.out.println(fenzhi); } public static int Max...
2022-04-11 17:43:52
533
2
原创 用数组模拟队列
队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出用数组来模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变当我们将数据存入队列时称为”addQue
2022-04-05 22:39:11
1339
原创 单向环形链表的创建及遍历 约瑟夫环问题的实现
单向环形链表构建环形链表构建一个单向的环形链表思路1. 先创建第一个节点, 让 first 指向该节点,并形成环形2. 后面当我们每创建一个新的节点,就把该节点,加入到已有的环形链表中即可.遍历环形链表1. 先让一个辅助指针(变量)temp,指向first节点2. 然后通过一个while循环遍历 该环形链表即可temp.next == first 结束//环形链表public class AnnularListNode { ...
2022-04-02 22:49:11
652
原创 双向链表的添加 修改 及删除操作
//比单链表多一个prehead节点1.不存放具体的数据2.作用就是表示单链表头next指向下一个节点pre 指向前一个节点分析双向链表的遍历,添加,修改,删除的操作1)遍历方式和单链表一样只是可以向前查找也可以向后查找2)添加(默认添加到双向链表的最后)先找到双向链表最后的节点temp.next=newListNodenewListNode.pre=temp3)修改思路和原来的单向链表一样4)删除(1)因为是双向链表因此...
2022-04-02 16:49:11
1378
原创 从尾到头打印链表
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。class method{public static ListNodeDemo head = new ListNodeDemo(0);public int[] reverse() { int[] nums = {}; if (head.next == null) { return nums; //链表为空 } ListNodeDemo temp = h.
2022-03-31 20:18:05
623
原创 链表的添加 遍历 输出倒数第k个节点值 删除链表中重复的节点
链表1)链表是以节点的方式来存储2)每个节点包含data域,next域:指向下一个节点3)链表的各个节点不一定是连续存放的4)链表分带头结点的链表和没有头结点的链表head节点1、不存放具体的数据2、作用就是表示单链表的头next 值 指向下一个节点链表的添加public class ListNode { public static void main(String[] args) { ListNodeDemo ..
2022-03-31 17:38:02
440
原创 数组中只出现一次的两个数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。 你可以假设这两个数字一定存在。 数据范围 数组长度 [1,1000]。 样例 输入:[1,2,3,3,4,4] 输出:[1,2] public static void main(String[] args) { int [] arr=new int[]{1,1,3,3,4,4,5,6}; int[] numsAppearOnce = f..
2022-03-27 21:54:37
68
原创 求第n个丑数
我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。 例如 6、8 都是丑数,但 14 不是,因为它包含质因子 7。 求第 n 个丑数的值。 数据范围 1≤n≤1000 样例 输入:5 输出:5注意:习惯上我们把 1 当做第一个丑数。方法1 运用数组//方法1 运用数组找出所有丑数 取所需要的的 public static int getUglyNumber(int n) { int [] arr=new int[n].
2022-03-26 17:24:06
568
原创 连续子数组的最大和
题目:输入一个 非空 整型数组,数组里的数可能为正,也可能为负。 数组中一个或连续的多个整数组成一个子数组。 求所有子数组的和的最大值。 样例 输入:[1, -2, 3, 10, -4, 7, 2, -5] 输出:18 public static void main(String[] args) { int [] arr=new int[]{1, -2, 3, 10, -4, 7, 2, -5}; int i = seekMaxArray(ar...
2022-03-25 20:39:17
488
原创 请输入一个数字实现这个数字的全排列
先上代码!(运用递归实现) public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n = scanner.nextInt(); int[]arr=new int[n]; //将n的值从1开始存放到数组中 for (int i = 1; i <=n ; i++) { arr[i-
2022-03-25 14:34:49
1247
原创 寻找最长的递增子序列
例:(1,9,2,5,7,3,4,6,8,0) 最长子序列为(3,4,6,8) (1,9,2,5,7,7,8,6,8,0)最长子序列为(2,5,7) public static void main(String[] args) { int arr[] = new int[]{1,9,2,5,7,3,4,6,8,0}; maxArr(arr); } private static void maxArr(int[] arr){ .
2022-03-24 17:17:03
801
原创 不修改数组找出重复的数字
给定一个长度为n+1的数组nums,数组中所有的数均在1∼n1∼n的范围内,其中n≥1n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。// 要得的数在1~n之间public static int Array(int[] arr) { int begin = 1; //定义首变量 int end =arr.length-1; //定义尾变量 while(begin < end){ //while循环 int mid = (...
2022-03-21 21:19:28
1141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人