自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 最接近三数之和的求解

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum-closest著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。public class ThreeSumClosest { public static void main(St

2020-07-31 12:25:47 119

原创 三数之和的求解

public static List<List<Integer>> threeSum02(int [] num){ int n = num.length; Arrays.sort(num); List<List<Integer>> res = new ArrayList<>(); //枚举a for(int first = 0; first < n; fir.

2020-07-31 11:20:58 200

原创 插入排序的递归代码实现

package Sort;import java.util.Arrays;public class InsertSortWithRecursion { public static void main(String[] args) { int [] arr = {2,1,6,5,3,4,-10,-99,100,88}; //测试 insertSort(arr,arr.length - 1); System.out.println(

2020-07-30 19:38:56 405

原创 字符串匹配问题的暴力实现

package Algorithm;public class ViolenceMatchString { public static void main(String[] args) { String str1 = "iLoveYou babyDoYouKnow";//[13,17] String str2 = "DoYou";//[13,17] //测试 int firstIndex = violenceMatchString(

2020-07-30 15:01:32 152

原创 0/1背包问题的实现

/* 0/1 背包问题,填表 */public class BagProblem { public static void main(String[] args) { int [] w = {1,4,3};//每个物品的重量,下标0不使用 int [] val = {1500,3000,2000};//每个物品对应的价值,下标0不使用 int m = 4;//背包的容量 int n = val.length;//物品的个数

2020-07-30 14:37:09 143

原创 汉诺塔问题的简单实现

package Algorithm;public class HanoiTower { public static void main(String[] args) { hanoiTower(5,'A', 'B', 'C'); } //汉诺塔问题,分治法 //num 表示盘的个数,a b c 三根柱子 //如果只有一个盘,num = 1, 直接从a-->c //如果num >= 2, 将上面num - 1 个盘当做一个盘,

2020-07-30 14:33:49 122

原创 堆栈排序

import java.util.Stack;public class StackSort {}class SortedStack { Stack<Integer> data = new Stack<>(); Stack<Integer> help = new Stack<>(); public SortedStack() { super(); } public void push(int

2020-07-29 23:11:29 424

原创 二分查找的非递归实现

public class BinarySearchNoRecursion { public static void main(String[] args) { int [] arr = new int[100]; for(int i = 0; i < 100; i++){ arr[i] = i + 1; } System.out.println(binarySort(arr,30)); }

2020-07-29 23:09:58 107

原创 Z字变形的JAVA代码

import java.util.ArrayList;import java.util.List;public class ZConvert { public static void main(String[] args) { String res = convert("LEETCODEISHIRING",3); System.out.println(res); } /* Z 字变形,只需要从左到右扫描字符串,查看每个字符应该放在哪一

2020-07-29 23:06:03 267

原创 JAVA压缩字符串的代码

/** *字符串压缩 * 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。 * 比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。 * 你可以假设字符串中只包含大小写英文字母(a至z)。 */public class CompressString { public static void main(String[] args) { String S = "abbccd";

2020-07-29 23:05:01 181

原创 JAVA使用字符串求大整数相加的结果

import java.util.Scanner;//大数相加://用两个字符串,n1, n2 表示我们要加的大数//思路:先将两字符串位数补对齐,然后反转两个字符串//按位相加//再反转public class BigNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // String num1 = sc.next();

2020-07-29 23:03:57 458

原创 数据结构排序算法大合集:快排、归并、基数、希尔等

import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int [] arr = {1, 2, 3, 4, 5, 6}; bubble(arr); System.out.println(Arrays.toString(arr)); } //冒泡排序 public static void bubble

2020-07-29 17:59:10 87

原创 图的深度优先遍历及广度优先遍历

package Graph;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public class Graph { public static void main(String[] args) { int n = 5; Graph graph = new Graph(5); String [] vertex = {"A","B",

2020-07-29 15:35:45 81

原创 数据结构排序算法堆排序代码实现升序、降序排序

package Tree;import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int [] arr = {4,6,8,5,9,-1,10,-999}; //测试升序 //heapSort(arr); // System.out.println(Arrays.toString(arr));

2020-07-27 13:10:07 1240

原创 JAVA二叉树的前序、中序、后序遍历及其前序、中序、后序索引化和遍历

package Exercise;public class ThreadBinaryTreeDemo { public static void main(String[] args) { Node root = new Node(1,"tom"); Node node1 = new Node(3,"smith"); Node node2 = new Node(6,"LiHua"); Node node3 = new Node(8,"

2020-07-26 17:56:41 151

原创 插值查找思路及代码实现

public class InsertSearch { public static void main(String[] args) { int [] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int index = insertValueSearch(arr,0, arr.length - 1, 8); System.out.println(index); } /* 1.

2020-07-25 10:02:38 215

原创 二分查找算法的思路及代码实现

package Search;import java.util.ArrayList;import java.util.List;/*1.二分查找:1.1首先确定该数组的中间下标-->mid = (left + right) / 2;初始化left = 0,right = arr.length - 11.2 然后让需要查找的数findValue 和 arr[mid] 比较1.3 如果 findValue > arr[mid],说明要找的数在mid 的右边,因此需要递归向右查找1

2020-07-25 09:57:27 249

原创 求字符串的最长回文子串的三种解法

package Exercise;import java.util.HashSet;public class LongestPalindrome { public static void main(String[] args) { String s = "aca"; //String max = longestPalindrome02(s); // System.out.println(max); /*String ans =

2020-07-24 22:14:51 191

原创 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: “psskes”输出: 3解释: 因为无重复字符的最长子串是 “ske”,所以其长度为 3。因为"pske" 是一个子序列,不是子串。package Exercise;import java.util.HashSet;/*给定一个字符串,求其无重复的最长子串. 思路:滑动窗口法 HashSet */public class NoDuplicateSubstr

2020-07-24 14:07:10 602

原创 数据结构排序算法之希尔排序交换法、移位法的java代码实现

package Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;/* 希尔排序 */public class ShellSort { public static void main(String[] args) { /*int [] arr = new int[80000]; for (int i = 0; i < a

2020-07-22 18:10:14 172

原创 数据结构排序算法之基数排序(桶排序的扩展)代码实现及详细注释

package Sort;import java.util.Arrays;/* 基数排序:“桶排序”扩展 思路:使用一个 二维数组bucket[][]模拟10个桶(二维数组的行表示桶的个数,列表示桶的大小), 再用一个一位数组bucketCount[]记录每个桶中每次插入的元素 先找出数组中最大的数,即位数最多的,它决定了循环的次数 第一轮:比较个位上的数:个位上的数可能为0 - 9 中的任意一个,将原数放入对应的桶中,

2020-07-22 18:07:51 164

原创 数据结构排序算法之归并排序的实现及详细注释

package Sort;/* 归并排序:把复杂的问题分解成多个子问题,子问题再分,直到不能再分 //使用空间换时间,多使用一个数组int [] temp存储中间结果 //首先,把 n 个元素的无序序列 分成 n 组,按中间分,直至每组一个元素: mergeSort(int [] arr, int left, int right, int [] temp){ int mid = (left + right) / 2; //直至每组一个元素

2020-07-22 14:23:23 155

原创 数据结构排序算法之快速排序的两种实现方法加完整注释及测试

package Sort;import java.text.SimpleDateFormat;import java.util.Date;public class QuickSort { public static void main(String[] args) { //测试 quickSort /*int [] arr = new int[100000]; for (int i = 0; i < arr.length; i++)

2020-07-22 11:50:29 153

原创 数据结构排序算法之希尔排序(交换法)

package Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;/* 希尔排序 */public class ShellSort { public static void main(String[] args) { /*int [] arr = new int[80000]; for (int i = 0; i < a

2020-07-21 17:30:08 172

原创 数组模拟环形队列

package ArrayQueueDemo;/*数组模拟环形数组:1.front指向队列的第一个元素2.rear变量指向队列的最后一个元素的后一个位置,因为希望空出一个空间做约定3.当队列满时:(rear + 1)%maxSize = front 【满】4. */public class ArrayQueueCycle {}class Queue{ private int maxSize; private int front; private int rea

2020-07-21 16:03:52 57

原创 使用数组模拟队列

package ArrayQueueDemo;public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queue = new ArrayQueue(3); System.out.println("输入s,显示队列所有数据"); System.out.println("输入a,队列加入数据"); System.out.print

2020-07-21 16:02:53 52

原创 将二维数组的值保存到稀疏数组和从稀疏数组还原成二维数组

package SparseArray;import java.io.*;import java.util.Scanner;public class SparseArr { public static void main(String[] args) throws IOException { //将二维数组转到稀疏数组存储 Scanner sc = new Scanner(System.in); //二维数组,n行m列 int

2020-07-21 15:59:46 76

原创 自己实现双链表

package DoubleLinkedList;public class DoubleLinkedList { public static void main(String[] args) { DoubleList doubleList = new DoubleList(); List h1 = new List(1,"宋江", "及时雨"); List h2 = new List(2,"陈瑶", "瑶哥"); List h3 =

2020-07-21 15:57:03 60

原创 排序算法之插入排序

package Sort;import java.text.SimpleDateFormat;import java.util.Date;/* 插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。思路: 从1 到 n - 1 开

2020-07-21 15:50:35 57

原创 选择排序算法

package Sort;/* 选择排序(select sorting) 也是一种简单的排序方法。 它的基本思想是:第一次从arr[0]^ arr[n-1]中选取最小值,与arr[0]交换, 第二次从.arr[1]^ arr[n-1]中选取最小值,与arr[1]交换, 第三次从arr[2] arr[n-1]中选取最小值,与arr[2]交换, .,第i次从arr[i-1]' arr [n-1]中选取最小值,与arr[i-1]交换,.,第n-1次从arr[n-2]' arr[n-1]中选取最小

2020-07-21 14:48:05 61

原创 冒泡排序算法及其优化

/* 冒泡排序:从前往后扫描数组,遇到逆序则交换--->小的会不断往前,大的不断往后 */public class BubbleSort { static int count = 0; public static void main(String[] args) { BubbleSort bs = new BubbleSort(); int [] array = {1,4,2,3}; bs.bubbleSort(array);

2020-07-21 13:58:02 61

原创 八皇后问题暴力递归解法

package Recursion;public class Queen8 { int max = 8;//棋盘的大小8 * 8 int [] array = new int[max];//使用一维数组的下标表示行,一维数组的值表示列 static int count = 0;//记录多少种解法 public static void main(String[] args) { Queen8 queen = new Queen8(); qu

2020-07-21 12:37:41 296

原创 区间 [l, r]中的幸运数字7

/*题目:给一个数n ,如:219 --> (1) 2 - 1 = 1,|1-9| = 8, |1-8| = 7,219为幸运数思路:把数字变成字符数组,遍历字符数组直到只剩下一个元素—>组成新的字符数组—>…–>直到新的字符数组长度为1。–>递归*/package Offer;import java.util.*;/*题目:给一个数n ,如:219 --> (1) 2 - 1 = 1,|1-9| = 8, |1-8| = 7,219为幸运数思路:把

2020-07-20 21:54:41 463

原创 环形单链表实现约瑟夫环问题

package CircleLinkedList;/** * 根据用户的输入 */public class Joseph { public static void main(String[] args) { CircleBoy circleBoy = new CircleBoy(); circleBoy.addBoy(5); circleBoy.showBoy(); System.out.println("---------

2020-07-20 16:36:30 142

原创 使用单链表模拟栈

package SingleListStack;public class ListStack { public static void main(String[] args) { //测试 SingleListStack<Integer> singleListStack = new SingleListStack<Integer>(); singleListStack.push(1); singleListS

2020-07-20 16:34:24 200

原创 使用数组模拟栈

package ArrayStack;/*用数组模拟栈 */public class ArrayStackDdemo { public static void main(String[] args) { }}class ArrayStack{ private int maxSize;//栈的最大容量 private int [] stack; private int top = -1;//top表示栈顶,初始化为-1 public ArrayS

2020-07-20 16:32:44 144

原创 中缀表达式转后缀表达式,完整版的逆波兰计算器

package PolanNotation;/*将 中缀表达式 转 后缀表达式: 1.初始化两个栈:运算符栈s1、中间结果栈s2 2.从左到右扫描中缀表达式 3.遇到操作数,直接压入s2 4.遇到运算符时,比较其与s1栈顶运算符的优先级; 4.1 如果s1为空或者栈顶运算符为左括号'(' ,直接将其压入运算符栈s1 4.2 否则,若优先级比栈顶运算符的优先级高,也将此运算符压入s1栈中 4.3 否则, 将s1栈顶的

2020-07-20 16:18:34 97

原创 最大正整数

最大正整数:数组中存储了一堆小于10的非负整数,整个数组从左到右代表一个正整数(如数组[0, 1, 3, 2]代表正整数132)。现给出一个正整数K,要求经过K次数组相邻位置元素交换(必须完成K次交换),使得这个数组代表的数字最大。例如,int array[] = {0, 1, 3, 2}, K = 1,则经过1次交换后,数组所能代表的最大值为1032;int array[] = {0, 1, 3, 2}, K = 2,则经过2次交换后,数组所能代表的最大值为3012。输入描述:首先,输入一个正

2020-07-18 16:28:45 3011

原创 按螺旋的顺序返回矩阵中的所有元素

给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。例如,给出以下矩阵:[↵ [ 1, 2, 3 ],↵ [ 4, 5, 6 ],↵ [ 7, 8, 9 ]↵]你应该返回[1,2,3,6,9,8,7,4,5]。import java.util.ArrayList;public class SpiralOrder { public static void main(String[] args) { int [][] matrix = {{1,2

2020-07-14 16:38:05 950

原创 无序的整数类型数组,求最长的连续元素序列的长度

给定一个无序的整数类型数组,求最长的连续元素序列的长度。例如:给出的数组为[100, 4, 200, 1, 3, 2],最长的连续元素序列为[1, 2, 3, 4]. 返回这个序列的长度:4你需要给出时间复杂度在O(n)之内的算法import java.util.*; public class Solution { /** * * @param num int整型一维数组 * @return int整型 */ public int l

2020-07-14 16:33:27 1374

coursedesign.zip

积分管理系统:通过开发积分系统或模拟积分系统,了解软件开发项目实践的基本过程,对 git,maven,spring 框架,拦截器,文件读写等知识或技术有一定了解。 任务:通过给出的实际需求设计并实现积分系统;可以通过我们给出的思路来实现并模拟积分系统的实现

2020-06-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除