
算法
ysgncss
每天进步一点点
展开
-
快速排序Java
import java.util.Arrays;public class Main { public static void swap(int[] num, int i , int j){ int temp = num[i]; num[i] = num[j]; num[j] = temp; } public static void sort(int num[], int start, int end){ int原创 2021-09-10 15:01:32 · 111 阅读 · 0 评论 -
Floyd算法
import java.util.Arrays;import java.util.Scanner;public class Floyd { // 求解图中任意两个结点的最短路径 // 输入: // 正整数N 表示图中N个结点 // 正整数M 表示图中M条边 // i,j,w 表示两个结点的权值 public static void main(String[] args) { final int INF =原创 2021-09-07 15:53:24 · 123 阅读 · 0 评论 -
Dijkstra算法
import java.util.Arrays;public class Num3 { public static void main(String[] args) { Num3 test = new Num3(); int MAX=Integer.MAX_VALUE-10000; int[][] weight={ {0,1,12,MAX,MAX,MAX}, {MAX,0,.原创 2021-09-04 12:44:00 · 125 阅读 · 0 评论 -
N皇后问题
非常简单的N皇后问题代码import java.util.*;public class Main{ //N皇后问题 // 输入:正整数N // 输出:输出所有的排列组合 static int N = 0; static int[] pos; // 第i个皇后所在的位置 static List<List<String>> res = new ArrayList(); public static void main(Stri原创 2021-09-01 08:36:49 · 110 阅读 · 0 评论 -
括号序列配对问题
这是最近在ACM练习场上看到的题目:现在,有一行括号序列,请你检查这行括号是否配对。第一行输入一个数N(0用栈结构实现最简单,但是一开始我没想到。大体思路如下:①从输入的每个的字符串的遍历每个字符②如果遇到 '('或'['就压入栈中,因为如果该字符串匹配的话,这两种字符总是先出现在字符串中③如果遇到')'或']',就匹配栈顶的元素,如果栈顶元素是对应的'('或者'[',原创 2017-09-27 20:06:34 · 1422 阅读 · 0 评论 -
Fibonacci数列第n个数除以10007的余数
问题描述:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。(1 )开始的思路是直接利用递推公式算出第n个数,在求出余数。但不幸的是,得分没有得全。过后想了想,是由于当n过大时,Fn太大,基本的数据结构不能存储下,造成溢出,程序无法得出正确答案。import java.util.Sc原创 2017-10-27 13:24:56 · 3481 阅读 · 0 评论 -
十六进制转八进制数
问题描述:给定n个十六进制正整数,输出它们对应的八进制数。输入的第一行为一个正整数n (1<=n<=10)。接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。刚开始想着,java中Integer类不是提供了进制的转化方法么,直接将输入的16进制先转化成十进制数,在将十进制数转化为2进制数就好了。但是程序的运行错误,看了别人的思原创 2017-10-28 21:55:21 · 1574 阅读 · 0 评论 -
字母图形
问题描述:利用字母可以组成一些美丽的图形,输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。 下面给出了一个例子:输入 5 7,则输出:ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC思路:双重循环控制输出,在对角线上时是输出的分界点。在分界线左边是字符输出逐渐减小,在分界线右边字符输出逐渐增大。import java.util.Scanne原创 2017-10-31 17:45:57 · 1251 阅读 · 0 评论