算法
文章平均质量分 71
小小雨伞
这个作者很懒,什么都没留下…
展开
-
蓝桥杯第八届c组c/c++第八题 拉马车
题目描述小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:A方:[K, 8, X, K, A, 2, A, 9, 5, A]B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双方轮流出牌。当轮到某一方出牌时,他从自己的纸牌队列的头部拿走一张,放到桌上,并且压在最上面一张纸牌上(如果有的话)。原创 2021-04-15 11:45:27 · 123 阅读 · 0 评论 -
两数相加高精度问题
package 有用的方法.精度问题;import java.util.Scanner;import java.util.Stack;public class AAddBInt { /** * 两个数相加,非常大的数,用string表示 * @param args */ public static void main(String[] args) { Scanner sc =new Scanner(System.in);原创 2020-11-22 15:19:32 · 307 阅读 · 0 评论 -
两数相乘高精度问题
package 有用的方法.精度问题;import java.util.Scanner;public class AXB { /* 两个数相乘,, 最重要的是c[i+j]+=a[i]*b[j]; */ public static void main(String[] args) { //使用数组 //从低位存大数 Scanner sc = new Scanner(System.in);原创 2020-11-22 15:18:03 · 296 阅读 · 0 评论 -
蓝桥杯十一届javab国赛扩散
bfs模板写package 递归.递归进阶.bfs;import java.util.LinkedList;import java.util.Queue;public class 扩散 { static int[][] route = { {0, 1}, {0, -1}, {1, 0}, {-1, 0} }; static int[][] map; public原创 2020-11-22 12:58:26 · 1522 阅读 · 5 评论 -
蓝桥杯十一届javab国赛玩具蛇
暴力枚举dfspackage 测试;public class 玩具蛇 { static int count; static int[][] route = { {0, 1}, {0, -1}, {1, 0}, {-1, 0} }; static int[][] temp = new int[4][4]; public static void main(Stri原创 2020-11-22 12:51:58 · 402 阅读 · 0 评论 -
第十一届蓝桥杯第二次省赛—E题七段码
第十一届蓝桥杯第二次省赛—E题七段码题目描述:小蓝要用七段码数码管来表示一种特殊的文字。 上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a,b, c, d, e, f, g。 小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。 例如:b 发光,其他二极管不发光可以用来表达一种字符。 例如:c发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较原创 2020-11-20 18:33:59 · 1591 阅读 · 3 评论 -
部分和2
package 递归.递归进阶.dfs;import java.util.ArrayList;import java.util.Scanner;public class 部分和2 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n =sc.nextInt(); int[] arr =new int[n];原创 2020-11-18 10:45:50 · 93 阅读 · 0 评论 -
部分和1
package 递归.递归进阶.dfs;import java.util.HashSet;import java.util.Set;public class 部分和1 { public static void main(String[] args) { int[] arr={1,2,4,7}; Set<Set<Integer>> sets = solve(arr, arr.length - 1); Boolean原创 2020-11-18 10:45:07 · 109 阅读 · 0 评论 -
水洼数
package 递归.递归进阶.dfs;import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import java.util.Scanner;public class 水洼数 { static int m; static int n;// static char[][]a; public static void main(String[] args) { Scan原创 2020-11-18 10:43:52 · 385 阅读 · 0 评论 -
全排列<2>
使用回溯package 递归.递归进阶;import com.sun.deploy.net.MessageHeader;import java.util.ArrayList;public class 全排列2 { static ArrayList<String> res =new ArrayList<>(); public static void main(String[] args) { String A ="222";原创 2020-11-15 22:06:08 · 132 阅读 · 1 评论 -
全排列<1>
使用hashset的特性迭代处理package 递归.递归进阶;import java.util.ArrayList;import java.util.HashSet;import java.util.Set;public class 全排列1 { public static void main(String[] args) { Set<String> abcd = solve("abc"); System.out.println(ab原创 2020-11-15 22:05:27 · 95 阅读 · 0 评论 -
子集生成之二进制法
使用二进制的特性可以处理子集问题package 递归.递归进阶;import java.util.ArrayList;import java.util.Arrays;public class 子集生成之二进制法 { public static void main(String[] args) { int[] A ={1,2,3,4,5}; ArrayList<ArrayList<Integer>> solve = solve(原创 2020-11-15 22:04:08 · 116 阅读 · 0 评论 -
子集生成
一个集合能够组成的所有子集思路:保持原样,或者添加一个元素package 递归.递归进阶;import java.util.HashSet;import java.util.Set;public class 子集生成 { public static void main(String[] args) { int[] arr = {123, 456, 789}; Set<Set<Integer>> sets = getSubse原创 2020-11-14 22:43:41 · 108 阅读 · 0 评论 -
合法括号
包含n个合法括号的package 递归.递归进阶;import java.util.HashSet;import java.util.Set;public class 合法括号 { public static void main(String[] args) { Set<String> parenthesis = parenthesis(3); System.out.println(parenthesis); } pub原创 2020-11-14 22:40:56 · 193 阅读 · 0 评论 -
小白走方格
小白要从左上角走m*n的方格只能向右或者向下走走到右下角求:有多少种走法package 递归.递归进阶;public class 小白走方格 { public static void main(String[] args) { solve2(2, 3); } //递归方式 private static int solve(int x,int y){ if (x==1||y==1) return原创 2020-11-08 22:24:17 · 143 阅读 · 0 评论 -
硬币组法问题
有1元 5元 10元 25元 的硬币输入一个整数 判断有多少钟组法package 递归.递归进阶;public class 硬币组发 { public static void main(String[] args) {// for (int i = 1; i < 101; i++) {// } int ways = countWays(4); System.out.println(4 + "---" + ways)原创 2020-11-08 22:21:52 · 150 阅读 · 0 评论 -
求和公式
package 算法.数学算法;public class 求和公式 { public static void main(String[] args) { // 1/2n(n+1) //平方和立方和 /* (n(n+1)(n+2))/6 立方 (n^2 (n+1)^2)/4 */ //等比数列 /*原创 2020-11-07 23:14:39 · 251 阅读 · 0 评论 -
天平问题
使用1,3,9,27…可以组成任意的正整数输入一个数,转换成各个3的指数的+和-package 算法.数学算法;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class 天平问题 { public static void main(String[] args) { Scanner sc =new Scanner(System.in);原创 2020-11-07 23:06:54 · 293 阅读 · 0 评论 -
回文串
package 算法.字符串;import com.sun.xml.internal.ws.util.StringUtils;public class 回文串 { public static void main(String[] args) { String s1="abcaa"; boolean isPalindrome = solve(s1); if (isPalindrome){ System.out.pr原创 2020-11-04 19:09:28 · 147 阅读 · 0 评论 -
两字符串的字符集是否相同
package 算法.字符串;import java.util.HashMap;import java.util.Map;public class 两字符串的字符集是否相同 { public static void main(String[] args) { String s1="abdc"; String s2="abcdd"; boolean check = check(s1, s2); if (check){原创 2020-11-04 19:07:59 · 86 阅读 · 0 评论 -
矩阵相乘
package 算法;import java.util.Scanner;public class 矩阵相乘 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[][] m1 = { {1, 2}, {1, -1} }; int[][] m2 =原创 2020-11-01 11:19:33 · 263 阅读 · 0 评论 -
子数组最大累加和
package 算法;public class 子数组的最大累加和 { public static void main(String[] args) { int[] arr={1,2,3,5,-2,6,-1}; int solve = solve(arr); System.out.println(solve); } private static int solve(int[] A){ int maxS原创 2020-10-30 17:26:46 · 95 阅读 · 0 评论 -
找到边界为1的最大子方阵
package 算法;public class 找到边界为1的最大子方阵 { public static void main(String[] args) { int[][] A={ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {原创 2020-10-30 09:22:17 · 162 阅读 · 0 评论 -
Z字打印
package 算法;public class Z型打印 { public static void main(String[] args) { int[][] arr = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; int r=0,m=arr.length; int c=0,n=a原创 2020-10-29 13:24:16 · 338 阅读 · 0 评论 -
将0所在行列清零
package 算法;public class 将0所在行列清零 { public static void main(String[] args) { int [][] arr={ {1,2,3,4}, {5,6,0,8}, {9,0,11,12}, {13,14,15,16}, }; int []row=new i原创 2020-10-29 09:34:57 · 131 阅读 · 0 评论 -
顺时针打印二维数组
package 算法;public class 顺时针打印二维数组 { public static void main(String[] args) { int[][] arr = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; //原创 2020-10-29 09:16:54 · 156 阅读 · 0 评论 -
数组能排出的最小数
package 算法;import java.util.Arrays;import java.util.Comparator;public class 数组能排出的最小数 { /* 输入一个正整数数组,把数组里所有整数拼接起来排成一个数,打印出能拼接出所有数字中最小的一个 例如数组{3,32,321}能打印出3个数字能排成的最小数字为321323 */ public static void main(String[] args) {原创 2020-10-28 21:36:52 · 145 阅读 · 0 评论 -
判断两个字符串是否包含
两个字符串,s1,s2判断s1是否s2的所有字符package 算法;import java.util.Arrays;public class 判断字符串数组包含 { public static void main(String[] args) { String s1 = "abcde"; String s2 = "abcpepyq"; boolean check = check(s1, s2); if (chec原创 2020-10-28 19:45:33 · 775 阅读 · 0 评论 -
算法c++之stl---queue详细使用
#include<bits/stdc++.h> using namespace std;//queue的详细使用queue<int> q;/** queue为队列 **/ int main(){ /** 方法很少 **/ q.push(1); q.push(2); q.push(3); q.push(4); //size() //back() //front() while(!q.empty()){ cout<<原创 2020-10-28 11:23:57 · 205 阅读 · 0 评论 -
算法c++之stl---list详细使用
#include<bits/stdc++.h> using namespace std;//list的详细使用/**Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. **/ list<int> l;/** list是链表数组 **/ int main(){ //链表的遍历 for( int i = 0; i < 10; i++ ) //链表后面插入元素 l.pu原创 2020-10-28 11:16:42 · 101 阅读 · 0 评论 -
算法c++之stl---map详细使用
#include<bits/stdc++.h> using namespace std;//map的详细使用map<int,int> m; /** map是键值对 **/ int main(){ //基本的就不写了.... //size() //clear() //iterator find( const KEY_TYPE &key ); /** find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。 **/原创 2020-10-28 10:59:39 · 143 阅读 · 0 评论 -
算法c++之stl---set详细使用
#include<bits/stdc++.h> using namespace std;//set的详细使用set<int> dict{8, 7, 6, 5, 4, 3, 2, 1}; /** set是不能重复的集合 **/ int main(){ for(auto it:dict){ cout<<it<<endl; } //begin开始的迭代器 //end 结束的迭代器 //count(n) 返回某个值的个数原创 2020-10-28 10:37:54 · 112 阅读 · 0 评论 -
算法c++之stl---string配合stack翻转单词
#include<bits/stdc++.h> using namespace std;//逆序单词stack<string> s; int main(){ string str; getline(cin,str); stringstream ss; ss<<str; while(ss>>str){ s.push(str); } while(!s.empty()){ cout<<s.top(); s.pop原创 2020-10-27 22:33:18 · 225 阅读 · 0 评论 -
算法c++之stl---字符串数字转换的三种方式
#include<bits/stdc++.h> using namespace std;int main(){ //第一种方式 string s="1234"; int i; stringstream ss; ss<<s; ss>>i; cout<<i<<endl; //第二种方式 i=stoi(s); cout<<i<<endl; //第三种方式 for(auto p:s){原创 2020-10-27 17:22:14 · 647 阅读 · 0 评论 -
算法c++之stl---使用堆栈处理进制问题
#include<bits/stdc++.h> using namespace std;//使用堆栈处理进制问题 stack<int> s; int main(){ int n=5; while(n!=0){ s.push(n%2); n/=2; } int res=0; while(!s.empty()){ res=s.top()+res*10; s.pop(); } cout<<"5的二进制是:"<<res&l原创 2020-10-27 16:56:51 · 80 阅读 · 0 评论 -
算法c++之stl---stack的详细使用
#include<bits/stdc++.h> using namespace std;//使用堆栈stack<int> s; int main(){ //empty()判空 //pop() 函数移除堆栈中最顶层元素。 //push() 函数将 val 值压栈,使其成为栈顶的第一个元素。如: //size() 函数返当前堆栈中的元素数目。如: return 0; } ...原创 2020-10-27 16:48:01 · 112 阅读 · 0 评论 -
算法c++之stl---string的详细使用
#include<bits/stdc++.h> using namespace std;int main(){ //获取一行字符串 string s="What we have here is a failure to communicate";// getline(cin,s); //打印 cout<<s[0]<<endl; //获取字符串的长度 cout<<"字符串的长度:"<<s.length()<<en原创 2020-10-27 16:39:48 · 148 阅读 · 0 评论 -
算法c++之stl---vector的详细使用
#include<bits/stdc++.h> using namespace std;vector<int> v(4,6);//定义一个长度为4,初始值为6的vector数组 int main(){ //测试遍历vector for(auto it:v){ cout<<it<<" "; } cout<<endl; //使用复杂方式遍历 for(vector<int>::iterator it=v.begi原创 2020-10-27 15:51:37 · 168 阅读 · 0 评论 -
算法c++之stl---set基本使用
#include<bits/stdc++.h> using namespace std;set<string> dict; //string集合 int main(){ string s,buf; int n =4; while(n--){ cin>>s; dict.insert(s); } //遍历set集合 for(set<string>::iterator it=dict.begin();it!=dict.end()原创 2020-10-20 22:42:51 · 115 阅读 · 0 评论 -
java算法排序之计数排序
package 十大排序;public class 计数排序 { public static void main(String[] args) { int[] arr={10,9,11,8,7,13,2,1,12,0,0}; sort(arr); for (int i = 0; i <arr.length ; i++) { System.out.print(arr[i]); System.o.原创 2020-10-20 17:22:42 · 85 阅读 · 0 评论