算法基础题java篇
文章平均质量分 66
悲伤的小霉
If not me,who?;If not now,when?
展开
-
codeforces 1324 D. Pair of Topics(思维)
题目描述:参考博客题意:给两个大小为 n 的数组A, B, 判断数组中有多少对 满足 Ai + Aj > Bi + Bj。解题思路:由于 n 的大小限制,两个for循环必然超时。调整不等式 为 (Ai - Bi) + (Aj - Bj) > 0 ,那么此时就可将两个数组转换为一个数组然后从小到大排序,小的 + 大的如果 大于0即可举例:54 8 2 6 24 5 4 1 3数组A - 数组B得到新的数组: 0 3 -2 5 -1排序后: -2 -1原创 2020-09-23 20:01:17 · 255 阅读 · 0 评论 -
Codeforces Round #653 (Div. 3) C. Move Brackets(括号匹配)
经典括号匹配问题。public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); while (t-->0) { int n = sc.nextInt(); sc.nextLine(); String s = sc.nextLine();原创 2020-09-18 22:14:33 · 107 阅读 · 0 评论 -
DFS-迷宫最短路径求解
求解迷宫的问题是很常见的一种DFS算法。例如如图:找到从入口到出口的最短路径,有障碍物的地方不能走。解决这种问题首先是要建立出数据模型来存放数据。然后再进行逻辑分析。我们可以定义一个二维数组来存放数据 //迷宫数据 0=空位,1=入口,2=出口,8=障碍物 public static int [][] mazeData = { {1,8,0,0,0}, {0,8,0,8,0}, {0,0,0,8,0},原创 2020-06-02 00:48:38 · 3601 阅读 · 0 评论 -
[蓝桥杯][算法提高VIP]分数统计
题目样例参考代码import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int a=0; int b=0; int c=0; int ...原创 2020-04-04 23:09:37 · 162 阅读 · 0 评论 -
算法题——一元一次方程(保留小数的方法)
题目解题思路1、 这是个简单的题,总结这道题的原因是熟悉保留小数的操作。2、 下面给出代码,保留两位小数。参考代码package com.ccl.study;import java.util.Scanner;public class yiyuanyicifangcheng { public static void main(String[] args) { Scanner...原创 2020-03-06 16:10:25 · 382 阅读 · 0 评论 -
算法题——带分数(全排列)
题目样例解题思路1、 式子可以进行变形,我们需要得到3个满足式子条件的数,这3个数,必须包含1-9这几个数字,并且不能重复,所有可以将3个数字表示起来,拼接成字符串。2、 一个for循环,首先从1开始,然后第二个for循环,例如100 = 3 + 69258 / 714;n=i+x/j这个式子的第一个数用第一个for循环表示,限制是不能大于n,最后一个数用另另一个for循环...原创 2020-02-24 17:56:24 · 219 阅读 · 0 评论 -
算法题——IP判断
题目样例解题思路1、 首先输入字符串,然后因为ip的特点可以根据 . 来进行分割字符串,这里需要主要分割的时候因为 . 在java里的特殊所有前面需要加上\,然后存入数组中,转换成int类型判断即可。注意输入的如果是字母转int会异常,所有用try catch处理一下,下面给出代码。参考代码package com.ccl.study;import java.util.Scanne...原创 2020-02-24 14:18:35 · 283 阅读 · 0 评论 -
算法题——2n皇后问题(回溯算法)
题目样例解题思路:1、 首先这是一道典型的回溯问题。考察回溯算法。2、 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。3、 题目的思路代码中写的很详细,主要还是需要理解,多加练习。参考代码package com.ccl.study;import java.util.*;public class huanghouwenti { static int n,coun...原创 2020-02-22 21:36:56 · 400 阅读 · 0 评论 -
算法题(字符串逆序Stringbuilder类的使用)
题目原题链接输入输出样例解题思路1、 这到题利用java里的API Stringbuilder类,直接输入逆转即可2、 直接给出代码。参考代码package DayDaytt;import java.util.Scanner;public class T1274 { public static void main(String[] args) { // char ...原创 2019-12-07 19:46:00 · 202 阅读 · 0 评论 -
算法题(递归解决问题)
题目原题链接输入输出样例解题思路1、 这道题类似斐波那契数列,有两种方法,一种是利用for循环,另一种是利用递归,总体上还是递归的思想。2、 首先这道题根据题意我们可以知道前4年牛的数量就是年数,第五年,牛的数量变成了6,第六年,牛的数量是9;所以可以看出来是有规律的,就是当年的牛的数量等于一年前的数量加上三年前的数量,f[n]=f[n-1]+f[n-3];2、 直接给出代码。...原创 2019-12-07 17:57:24 · 331 阅读 · 0 评论 -
算法题(二分法快速幂运算及取余)
题目输入输出样例解题思路1、 题目非常简单,这道题就是考二分法快速幂运算,因为这个题运算出来的数会非常大,而且编译时间长,所以不能用直接运算的方法。2、 二分法详解3、 每次把指数缩小成原来的一半,底数增大到原来的平方,判断指数的奇偶性,奇数就减一继续重复,这里就需要把刚才底数乘的数都乘起来,注意没一步都需要对要求的数取余,这样才不会使数值过大。这里用long,int过不去OJ系...原创 2019-11-14 16:00:14 · 646 阅读 · 0 评论 -
算法题(字符串判断问题,输入问题)
题目输入输出样例解题思路(第一种方法)1、 首先题目要求说不考虑顺序,不考虑大小写,不考虑空格,所以,这道题需要对两个字符串进行的操作就是去空格,转换成统一大小写,排序然后比较,理清了这个思路,只需要挨个去实现就行。2、 这道题需要注意的点很多,从代码上面往下说,首先在多组输入的时候,因为后面要输入两个字符串,需要再输入一个 sc.nextLine();读取下一行,否则会出现输入一个...原创 2019-11-14 15:44:00 · 466 阅读 · 0 评论 -
算法题(斯特林公式求N的阶乘,在B进制下的位数)
题目样例解题思路1、 这道题是ACM题,有点难度,需要运用数学知识,k进制下的n的阶乘的位数=logk(n)=log10(n)/(log10(k)),a先保持浮点类型的,最后结果再上取整,下面直接给出代码。参考代码package Test;import java.util.Scanner;public class h { public static void main(St...原创 2019-11-07 16:11:46 · 248 阅读 · 0 评论 -
算法题(大数运算)
题目样例解题思路1、 这道题2个数的范围特别大,所以需要用大数运算做,这里需要注意的是大数运算是字符串的运算,加减乘除和整数不一样。例如BigInteger abs() //返回大整数的绝对值BigInteger add(BigInteger val) //返回两个大整数的和BigInteger and(BigInteger val) //返回两个大整数的按位与的结果Bi...原创 2019-11-07 09:24:22 · 713 阅读 · 0 评论 -
算法题(拼字母)
题目样例解题思路1、 这是水题,还是需要注意Ascii码的使用,和之前文章小仙女的烦恼是一种类型的题。2、 注意一下定义最大值的方法,int max=Integer.MAX_VALUE;以及后面判断语句的格式。参考代码package Test;import java.util.Scanner;public class e { public static void main...原创 2019-11-07 00:14:25 · 191 阅读 · 0 评论 -
算法题(定义函数求值)
题目样例解题思路1、 该题有点难度,但实际上定义一个函数就可以解决问题,还是把数据添加到数组下标中,如果对应数值有数值的话,数组元素就不为0了。2、 然后我们定义一个find函数,根据题意如果M不存在,那么输出-1,就是K的值大于等于10,一定没有M存在,所以函数可以写如果K>=10 ,return -1;然后for循环,从输入的n开始循环,这里需要注意的是,最后我们要得到fo...原创 2019-11-07 00:05:28 · 615 阅读 · 0 评论 -
算法题(多组输入操作)
题目输入输出样例输入输出解题思路1、 这是个水题,就是判断一下。需要注意的是多组输入的格式是while(sc.hasNext())。下面给出代码。参考代码package Test;import java.util.Scanner;public class c { public static void main(String[] args) { Scanner sc=n...原创 2019-11-06 23:26:48 · 414 阅读 · 0 评论 -
算法题(数组下标问题)
题目样例解题思路1、 输入的数就是数组的下标,没多输入一个数据数组里就会+1;2、 开始遍历数组,max值定为0,从age[max]开始和age[1],依次比较,把比age[max]大的age[i]的i重新定义为max;最后会得到数组里数值最大的下标,也就是输入的数据中最多的。参考代码package Test;import java.util.Scanner;publi...原创 2019-11-06 23:18:00 · 503 阅读 · 0 评论 -
算法题(Java--基础题型)
题目样例解题思路1、 这道题是简单题,但是注意题目的坑,k和A的范围都很大有1亿,并且还有n次,所以这道题需要用long类型做。2、 使用简单的for循环即可解题。下面给出代码。参考代码package Test;import java.util.Scanner;public class a { public static void main(String[] args) ...原创 2019-11-06 22:17:30 · 154 阅读 · 0 评论