![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
所为xy
这个作者很懒,什么都没留下…
展开
-
求一个数组中的最小值与次小值
给定一个数组,无重复值,求数组中元素的最小值与次小值public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); int [] a=new int[n]; for (int i = 0; i < n; i++) { a[i]=in.nextInt(); }原创 2020-09-18 11:12:46 · 2306 阅读 · 0 评论 -
给定一字符串,求它的组合结果
给定一个字符串,求出该字符串的所有组合(假设无重复字符)str=“abc”,那么其组合有[a,b,c,ab,ac,bc,abc]思路:以abc为例,它的组合的结果为 2的3次方-1,即7种。那么枚举1——7,则每个值的二进制可代表一种情况:1: 001 str[2] -----> c2: 010 str[1] -----> b3: 011 str[1]+str[2] -----> bc4: 100 str[0] -----> a5: 1原创 2020-09-06 19:07:16 · 506 阅读 · 0 评论 -
图相关算法
Dijkstra:package path;import java.util.PriorityQueue;import java.util.Scanner;/** * Dijkstra算法:一张图中,选定一个原点,求剩余点中,任意一点到该原点的最短距离。 */public class DijkstraPath { static class DataNode implements Comparable<DataNode>{ int v;原创 2020-08-29 08:56:09 · 172 阅读 · 0 评论 -
2数之和、3数之和问题
给定数组a,与target,求2/3 数和为taget的元素。一、排序数组:2数之和:left=0,right=n-1,双指针联动:sum<target时,left++;sum>target时,right–;sum==target时,left++,right–。3数之和:还是双指针联动。比如遍历到a[i],令temp=target-a[i],left=i+1,right=n-1,求和为temp的2数和,转换为2数和问题。二、非排序数组:2数之和:用一个set保存a[i]的值。遍历原创 2020-08-04 16:56:27 · 228 阅读 · 0 评论 -
汉诺塔
问题描述:输入一个整数n,表示有n个盘子,起始时在第一个柱子上,从上到下依次是1-n。现在有1,2,3三个柱子,要求将一号柱子的盘子移动到3号盘子。每移动一个盘子(编号为i)需要消耗i点体力。现在需要求出移动的最少步数以及消耗的最少体力。例如:23 437 11解法一:纯递归解法import java.util.LinkedList;import java.util.Sca...原创 2020-01-10 21:00:19 · 463 阅读 · 0 评论 -
求一个数组的连续子数组的最大值(以及区间)
求一个数组的连续子数组的最大值(以及区间)package suanfa.impover;/** * 求一个数组的连续子数组的最大值(以及区间) */import java.util.Arrays;public class SubArrayMaxSum { // 暴力破解,O(n2) public static void fun1(int [] a) { System....原创 2020-02-14 12:33:57 · 941 阅读 · 0 评论 -
一个长度为N的数组,求哪N-1个数组成的乘积最大
package suanfa.impover;import java.util.Arrays;import java.util.Scanner;/** * 一个长度为N的数组,求哪N-1个数组成的乘积最大 */public class MaxSubArrayMultiplication { // 方法一:得到乘积,依次去除。处理的数据中不能含0 // 当有0,...原创 2020-02-14 12:34:12 · 210 阅读 · 0 评论 -
求一个数组的最长递增子序列(即不一定连续)
求一个数组的最长递增子序列(即不一定连续)package suanfa.impover;import java.util.Arrays;/** * 求一个数组的最长递增子序列(即不一定连续) */public class LengthgestSubSequence { /** *用一个数组,count[i]:表示到第i位为止,最长的递增子序列的长度 *...原创 2020-02-14 12:34:25 · 358 阅读 · 0 评论 -
求字符串中不含重复字符的最长子串,假设只含a-z
求字符串中不含重复字符的最长子串,假设只含a-zpackage suanfa.impover;import java.util.Arrays;import java.util.Scanner;/*求字符串中不含重复字符的最长子串,假设只含a-z */public class maxLength_noRepeatSubstring { public static int ...原创 2020-02-14 12:34:35 · 271 阅读 · 0 评论 -
求一个字符串中的最长的 回文子串
求一个字符串中的最长的 回文子串package suanfa.impover;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;/** * 求一个字符串中的最长的 回文子串 */public class MaxParlindro...原创 2020-02-14 12:34:50 · 192 阅读 · 0 评论 -
二叉搜索树的遍历序列
package suanfa.newchllenage;public class SearchTree {/***输入一个不含重复值的数组代表一棵二叉搜索树的后序遍历序列:判断该序列是否能构成一棵二叉搜索树 */public static boolean isBehind(int [] a){ if (a==null||a.length<1){ retu...原创 2020-02-14 12:34:59 · 138 阅读 · 0 评论 -
复杂排序
package suanfa.newchllenage;import java.util.Arrays;/** * 随机版快速排序 */public class QuickSort02 { public static void quickSort(int [] a){ if (a==null||a.length<1){ retu...原创 2020-02-14 12:35:16 · 135 阅读 · 0 评论 -
简单排序
/** * 有一个数组,其前半部分与后半部分都是相对有序的,O(1)时间复杂度,将其合并为一个升序数组 */public class CombineArray { public static void combineArray(int [] a,int mid) { if (mid>=a.length){ return; ...原创 2020-02-14 12:35:25 · 122 阅读 · 0 评论