算法
Vivinia_Vivinia
微信号:healer_healer
展开
-
【算法】-数字三角形
package blueBridge;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 数字三角形,从顶部到底部经过数字之最大的路径 输入: 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出: 30 * */ public static void main(String[] args) { int[][] f.原创 2021-04-17 21:43:18 · 460 阅读 · 0 评论 -
【算法】-错误票据
package blueBridge;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大.原创 2021-04-17 11:08:53 · 417 阅读 · 0 评论 -
【算法】-2013填空
package blueBridge;import java.util.*;public class testOne { /* * 题目 * 判断1999年以后哪一个世纪末恰好为星期天,选择最近的年份 * */ public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); for(int year=1999;year&...原创 2021-04-17 10:04:58 · 360 阅读 · 0 评论 -
【算法】-字符串全排列
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 全排列 * */ static ArrayList<String> getRes(String A){ int n=A.length(); ArrayList<String> res=new Arr原创 2021-04-16 15:18:14 · 191 阅读 · 0 评论 -
【算法】-按单词翻转字符串
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 字符串按单词翻转 * */ static String rev(String str) { String s1=reverseStr(str); String[] words=s1.split("\\s"); //按空原创 2021-04-16 09:56:36 · 154 阅读 · 0 评论 -
【算法】-压缩字符串
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 给定一个矩阵matrix,返回子矩阵的最大累加和 * */ static String zipStr(String str) { int count=0; //记录前一个字符的重复次数 char last=0; /原创 2021-04-16 09:17:22 · 175 阅读 · 0 评论 -
【算法】-求最大子数组的和
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 给定一个矩阵matrix,返回子矩阵的最大累加和 * */ static int addNum(int[] arr) { int sumJ=arr[0]; int max=sumJ; int left=0,right=原创 2021-04-16 08:17:59 · 177 阅读 · 0 评论 -
【算法】-求最大子序列的和
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 给定一个数组arr,返回子数组的最大累加和 * 例:arr=[1,-2,3,5,-2,6,-1],所有的子数组中[3,5,-2,6]可以累加出最大的12 * */ static int addNum(int[] arr) {原创 2021-04-15 19:54:06 · 134 阅读 · 0 评论 -
【算法】-字符串包含
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 输入两个字符串str1和str2,请判断str1中的所有字符是否都存在str2中 * */ static boolean check(String str1,String str2) { char[] s2_arr=str2.原创 2021-04-15 16:26:51 · 153 阅读 · 0 评论 -
【算法】-求数组过半数字
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字 * */ static int getNum(int[] arr) { int condidate=arr[0]; int nTimes=1; for(原创 2021-04-15 14:56:14 · 187 阅读 · 0 评论 -
【算法】-字符串检索
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引。 * */ static int indexOf(String[] arr,String p) { int begi原创 2021-04-15 10:53:01 · 146 阅读 · 0 评论 -
【算法】-数组检索
Java:package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 * 输入一个递增排序的数组的一个选转,输出旋转 数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. *.原创 2021-04-15 10:10:09 · 120 阅读 · 0 评论 -
【算法】-上台阶
package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶或者3阶,实现一个方法,计算小白有多少种走完楼梯的方式。 * */ static int UpCase(int n) { if(n==0) { return 0; }.原创 2021-04-07 22:25:54 · 326 阅读 · 0 评论 -
【算法】-汉诺塔
package blueBridge;import java.util.*;import java.math.BigInteger;import java.util.*;public class testOne { /* * 题目 * 汉诺塔 * */ static void HanoiTower(int N,String from,String to,String help) { // if(N==1) { System.out.println("move"+.原创 2021-04-07 21:59:59 · 107 阅读 · 0 评论 -
算法-N皇后(递归)
package MOOC;/** * 输入整数n,要求n个国际皇后,摆在n*n的棋盘上,使其互相不能攻击(不在同一行列对角线上),输出全部方案 */import java.util.Scanner;public class NQueen { static int n; static int[] queens; public static void main(String[] ar原创 2018-01-29 12:30:06 · 410 阅读 · 0 评论 -
算法-判断是否为回文数(c语言版)
输入一个数判断是否为回文数#include <stdio.h>#include <stdlib.h>void main(){ int i=0,s,n; printf("请输入一个数:"); scanf("%d",&n); s=n; while(s!=0){ i=i*10+s%10; ...原创 2019-03-01 20:52:47 · 12830 阅读 · 2 评论 -
算法-求亲密数
若正整数A的全部约数(包括1,不包括A本身)之和等于B,且证书B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。输入A,输出A是否有亲密数。例如220和284.#include <stdio.h>#include <stdlib.h>void main(){ int n,i,k=1,m=1; scanf("%d",&n);...原创 2019-03-01 21:57:49 · 4047 阅读 · 0 评论 -
算法-阶乘尾数零的个数
输入一个正整数n,求其阶乘位数0的个数,比如n为10,输出2,n为100,输出24.#include <stdio.h>#include <stdlib.h>void main(){ int i,j,n,c=0; scanf("%d",&n); for(i=5;i<=n;i++){ j=i; ...原创 2019-03-01 22:01:52 · 2408 阅读 · 0 评论 -
算法-年月日计算
输入某一年地第几天,计算并输出它是这一年第几月第几日#include <stdio.h>#include <stdlib.h>void MonthDay(int year,int yearDay,int *pMonth,int *pDay){ int daysTemp=0; //遍历到该月底总共多少天 int a[12]={31,28,...原创 2019-03-08 20:09:57 · 2372 阅读 · 0 评论 -
算法-转置矩阵
输入两个整数m和n,再输入m*n个数存入m行n列数组中,将该数组地转置矩阵n*m输出#include <stdio.h>void main(){ int i,j,m,n,**a; scanf("%d %d",&m,&n); a=(int **)malloc(sizeof(int *)*m); for(i=0;i<m;i+...原创 2019-03-08 20:16:41 · 377 阅读 · 0 评论 -
51nod-1011-最大公约数GCD
输入2个正整数A,B,求A与B的最大公约数。 收起输入2个数A,B,中间用空格隔开。(1<= A,B <= 10^9)输出输出A与B的最大公约数。输入样例30 105输出样例15方法一(穷举):#include <stdio.h>#include <stdlib.h>int main(){ i...原创 2019-02-23 22:09:07 · 294 阅读 · 0 评论 -
51Nod-1000A+B
给出2个整数A和B,计算两个数的和。 收起输入2个整数A B,中间用空格分割。(0 <= A, B <= 10^9)输出输出A + B的计算结果。输入样例1 2输出样例3#include <stdio.h>#include <stdlib.h>int main(){ int a; l...原创 2019-02-23 21:16:29 · 207 阅读 · 0 评论 -
算法-爬楼梯(递归)
package MOOC;import java.util.Scanner;/**爬楼梯: 舒老师爬楼梯,他恶意每次走1级或者2级,输入楼梯级数,求不同的走法数输入样例: 3输出样例: 3输入样例: 5输出样例: 8 * @author Vivinia * * 2018年2月11日 */public class ToValue { public stati...原创 2018-02-11 10:50:36 · 2861 阅读 · 0 评论 -
算法-放苹果(递归)
package MOOC;import java.util.Scanner;/**放苹果: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多种不同的分法?5,1,1和1,5,1是同一种分法。输入样例: 7 3输出样例: 8 * @author Vivinia * * 2018年2月11日 */public class PutApple { pu原创 2018-02-12 10:49:32 · 1052 阅读 · 0 评论 -
算法-表达式求值(Dijkstra双栈)
package jiChu;import java.util.ArrayList;/**问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入((1-2)+(3*(4-5)))样例输出-4数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int原创 2018-01-30 09:49:10 · 291 阅读 · 0 评论 -
算法-波兰表达式求值(递归)
package MOOC;import java.util.Scanner;/**问题描述: 波兰表达式(前缀表达式)求值 样例输入: * + 11.0 12.0 + 24.0 35.0 样例输出: 1357.000000 * * @author Vivinia * * 2018年1月29日 */public class BoLan { s原创 2018-01-29 18:03:51 · 563 阅读 · 0 评论 -
算法-汉诺塔算法(递归)
目标效果:package MOOC;import java.util.Scanner;/**汉诺塔问题描述: A、B、C 三个桌子,其中A桌子上放了几个大小不同的盘子,盘子的排列顺序为: 从上到下,依次从小到大递增;现要求把这些盘子从 A 桌子上移动到 C 桌子上,盘子移动时有一点要求:每次移动必须保证三张桌子上大盘子在下、小盘子在上;打印移动次序。 * @au原创 2018-01-28 21:56:41 · 348 阅读 · 0 评论 -
算法-熄灯问题
package MOOC;import java.nio.channels.SelectableChannel;import java.util.Scanner;/**题目描述 * 有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。 * 当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。 * 即,如果灯原来是点亮的,就会被原创 2018-01-24 21:36:59 · 857 阅读 · 0 评论 -
算法-称硬币(枚举)
package MOOC;import java.util.Scanner;/**问题描述 有一个天平,和12枚硬币(有一枚是假的),用A~L表示,但是不一定每个字母都会出现。现在有三次称量结果,求一枚假硬币,每个样例都有解。输入样例 ABCD EFGH even ABCI EFJK up ABIJ EFGH even输出样例 K is the counterfeit c原创 2018-01-23 22:32:01 · 880 阅读 · 0 评论 -
算法-生理周期(枚举)
package MOOC;import java.util.Scanner;//枚举(生理周期)/**问题描述 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天,28天和33天。每一个周 期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精 力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同原创 2018-01-23 21:01:42 · 1297 阅读 · 0 评论 -
算法-计算24(递归)
package MOOC;import java.util.Scanner;/**给出4个小于10的正整数,你可以使用加减乘除4中运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24.样例输入: 5 5 5 1样例输出: yes样例输入: 1 1 4 2样例输出: no * @author Vivinia * *原创 2018-02-12 16:22:25 · 666 阅读 · 0 评论 -
算法-归并排序(分治)
package MOOC;public class GuiBing { static int[] a= {13,27,19,2,8,12,2,8,30,89}; static int[] b=new int[10]; public static void main(String[] args) { int size=a.length; MergeSort(a,0,size-1,原创 2018-02-20 14:38:51 · 247 阅读 · 0 评论 -
算法-01背包问题(动态规划)
import java.util.Scanner;/**问题描述: 有n件物品和一个承重为m的背包。(每种物品均只有一件)第i件物品的重量是weight[i],价值是value[i]。 求解将哪些物品装入背包可使价值总和最大。输入样例:3 103 4 54 5 6输出样例:0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 0 0 0...原创 2018-03-31 17:37:44 · 648 阅读 · 0 评论 -
算法-N皇后(回溯)
import java.util.Scanner;/**皇后是国际象棋中威力最大的棋子。在下面所示的棋盘上,皇后可以攻击位于箭头所覆盖位置的所有棋子。我们能不能把N个皇后放在棋盘(N×N)上,它们中的任何一个都无法攻击其余的皇后,即任两个皇后不能在同一行,同一列或者同一对角线上。请编写程序输出皇后的摆放方案,并找出一共有几种方法。 * @author Vivinia * */pu...原创 2018-03-31 15:37:45 · 395 阅读 · 0 评论 -
算法-最大公约数
import java.util.Scanner;/** * @author Vivinia * */public class Main{ public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); int m=input.next...原创 2018-03-24 16:07:33 · 247 阅读 · 1 评论 -
算法-39级台阶
/**问题描述: 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。 那么,上完39级台阶,有多少种不同的上法呢?样例输出:51167078 * @author Vivinia * */public原创 2018-03-18 10:28:01 · 758 阅读 · 0 评论 -
算法-栈的出栈个数
import java.math.BigInteger;/**问题描述: n个元素的出栈次序 f(n)=f(0)*f(n-1)+f(1)*f(n-2)...+f(n-2)*f(1)+f(n-1)*f(0)输出样例:0:11:12:23:54:145:426:1327:4298:14309:486210:1679611:5878612:20801213:742原创 2018-03-18 09:12:13 · 2527 阅读 · 0 评论 -
算法-最长公共子序列
package MOOC;import java.util.Scanner;/**问题描述: 最长公共子序列输入样例:abcfbc abfcab输出样例:4 * @author Vivinia * * 2018年2月24日 */public class ChangGong { static char[] s1=new char[1000]; static char原创 2018-02-24 11:04:45 · 237 阅读 · 0 评论 -
算法-最长上升子序列
package MOOC;import java.util.Scanner;/**问题描述: 最长上升子序列输入样例:71 7 3 5 9 4 8输出样例:4 * @author Vivinia * * 2018年2月22日 */public class ZuiChang { static int maxn=1010; static int[] a=new in原创 2018-02-22 23:41:26 · 198 阅读 · 0 评论 -
算法-数字三角形(递归,动态规划)
package MOOC;import java.util.Scanner;/*问题描述: 在数字三角形中寻找一条从顶部到底部的路径,使得路径上锁经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大的即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为0-99输入格式:3 //三角形行数73 88 1 0输出格式:18 *...原创 2018-02-20 21:18:50 · 2534 阅读 · 1 评论