
算法
算法打卡(Python,Java,Golang)
九思梦鹿
怀揣着梦想的星辰
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python——不同的选择排序的性能/压力测试对比
def selection_sort(): L = [96, 2, 65, 23, 47, 58, 8, 48, 69, 92, 34, 83, 93, 47, 45, 55, 95, 15, 92, 24, 64, 19, 29, 55, 35, 48, 39, 29, 63, 94, 99, 38, 50, 10, 10, 93, 74, 27, 74, 44, 29, 81, 85, 86, 74, 30, 50, 50, 12, 12, 38, 75, 41, 87, 80原创 2021-09-27 11:09:08 · 201 阅读 · 0 评论 -
Python——动态规划法 求不同的二叉搜索树最多有多少
目录引言问题描述预期结果思路分析算法引言二叉搜索树又称二叉排序树,满足这样的条件:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。问题描述给定一个整数 n,求以 1,2,… n 为节点组成的二叉搜索树有多少种预期结果case 1: return 1;case 2: return 2;case 3: return 5;case 4: return 14;case 5: return 42;case 6: ret原创 2021-01-11 21:54:53 · 303 阅读 · 0 评论 -
Python——计算完全二叉树的节点个数
完全二叉树的定义在完全二叉树中,除了最底层结点可能没填满外,其余每层结点数都达到最大值,并且最下面一层的结点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h 个结点预期结果输入: [1,2,3,4,5,6]输出: 6递归法class Solution: def countNodes(self, root: TreeNode) -> int: left = right = 0 tmp1 = tmp2 = root原创 2021-01-10 21:53:40 · 2136 阅读 · 0 评论 -
Python——二叉树的前序、中序、后序遍历
引言练习完二叉树的前序遍历、中序遍历、后序遍历三个算法之后,站在巨人的肩膀上,总结了一个算法,可以通用于前序、中序、后序遍历,记忆也超方便。算法class Solution: def orderTraversal(self, root: TreeNode) -> List[int]: ZERO, ONE= 0, 1 res = [] stack = [(ZERO, root)] while stack:原创 2021-01-10 00:24:37 · 660 阅读 · 0 评论 -
Java——攻击日志统计(HashMap)
攻击日志统计,根据查询的起始时间、终止时间以及攻击类型三个参数进行筛选统计,获得总攻击次数本题在分析的过程中默认攻击日志的时间戳是唯一的,因此解答的算法没有通过平台的测试,只提供一个思路,供参考import java.util.HashMap;import java.util.Scanner;import java.util.Set;public class Main { public static void main(String[] args) { // TODO Auto-.原创 2021-01-06 22:40:17 · 346 阅读 · 0 评论 -
Java——事故应急
事故应急,技术支持,判断当天最多有多少问题可以得到处理import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int t = scanner.nextInt(); int r[] = new int[t]; for(int i=0;.原创 2021-01-06 22:32:00 · 387 阅读 · 0 评论 -
Java——高效斐波那契数列
实现斐波那契数列,采用大数BigInteger库,效率要求要高import java.math.BigInteger;import java.util.ArrayList;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner =new Scanner(System.in); ArrayList<Integer> arra.原创 2021-01-06 22:21:08 · 307 阅读 · 1 评论 -
Java——数组运算
数组元素合并,求最终数组中最多有多少个数可以被3整除import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int t =scanner.nextInt();//样例数目 int res[] = new int[.原创 2021-01-06 22:00:48 · 401 阅读 · 0 评论 -
Java——折半查找
折半查找:又称二分查找,仅适用于有序的顺序表。基本思路为:首先将给定值key与表中中间位置元素的关键字比较,若相等,则查找成功,返回元素位置,若不等,则所需查找的元素只能在中间元素以外的前半部分或后半部分中(例如:若升序表中,给定的key大于中间元素的关键字,则所查找的元素只可能在后半部分)。然后缩小范围继续进行同样的查找,如此重复,直至找到为止,或者查找失败!经典算法:int Binar...原创 2019-11-09 21:37:48 · 663 阅读 · 0 评论 -
Java——快速排序
如何通过可变数组ArrayList 以及分治法实现快速排序代码如下:import java.util.ArrayList;import java.util.Scanner;//快速排序//挖坑填数+分治public class KuaiSuPaiXu { public static void main(String[] args) { // TODO Auto-gener...原创 2019-04-23 21:46:36 · 216 阅读 · 0 评论 -
蓝桥杯【JAVA】——Anagrams问题
1、题目:2、思路分析先判断两个字符串的长度是否一样,若不一样,肯定不是Anagrams,若一样长度,再判断是否满足 “在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的” 的条件,先将每个字符串都转化为大写,方便不区分大小写的判断,其次,将字符串转化为数组,最后,判断每个数组的相对应的位置是否是一样的元素,若是则满足Anagrams3、程序代码:import j...原创 2019-03-23 22:06:04 · 370 阅读 · 0 评论 -
蓝桥杯【JAVA】——字串统计(Map键值对)
1、题目:2、程序代码:import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner ...原创 2019-03-23 17:07:40 · 428 阅读 · 0 评论 -
蓝桥杯【JAVA】——大小写转换
1、题目:2、程序代码:import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner get=new Scanner(System.in); String str=get.nex...原创 2019-03-23 13:46:33 · 532 阅读 · 0 评论 -
蓝桥杯【JAVA】—— 矩阵乘法
1、题目:2、程序代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner get=new Scanner(System.in); int m=get.nextI...原创 2019-03-23 13:32:11 · 429 阅读 · 0 评论 -
蓝桥杯【JAVA】——删除数组零元素(动态数组ArrayList)
1、题目:2、思路:利用动态数组ArrayList进行求解3、程序代码如下:import java.util.ArrayList;import java.util.Scanner;public class Main { static Scanner get=new Scanner(System.in); public static void main(String[] arg...原创 2019-03-22 22:26:35 · 342 阅读 · 0 评论 -
蓝桥杯【JAVA】——最小乘积(基本型)
1、题目:2、思路:每组有两行数据,将两行数据分配到两个数组中,每个数组中的元素按照从大到小排序,第一个数组第一个元素乘以第二个数组最后一个元素,第一个数组第二个元素乘以第二个数组倒数第二个元素,以此类推,最后相加即为所求3、程序代码:import java.util.Scanner;public class Main { public static void main(St...原创 2019-03-22 21:51:02 · 372 阅读 · 0 评论 -
蓝桥杯【JAVA】——数字三角形(动态规划、递归)
1、题目:(一个最简单的动态规划题)给出一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; 5——代表5行输入数字73 88 1 02 7 4 44 5 2 6 5输出:302、程序如下:import java...原创 2019-03-20 15:03:15 · 942 阅读 · 0 评论 -
蓝桥杯【JAVA】——最大的算式
1、题目:给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1 * 2 * (3+4+5)=24 1 * (2+3) * (4+5)=45 (1 * 2+3) * (4+5)=45...原创 2019-03-18 21:49:00 · 508 阅读 · 0 评论 -
蓝桥杯【JAVA】——2的次幂表示
问题:任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+ 2^3+ 2^0现在约定幂次用括号来表示,即a^b表示为a(b)此时,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2 +2+ 2^0 (2^1 用2表示)3=2+2^0所以最后137可表示为...原创 2019-03-18 19:32:30 · 348 阅读 · 0 评论 -
POJ——1008(Maya Calendar)问题
解答此题——日历的换算,我的思路是先求出一种日历的某一天在这种日历的日期(即从第一天开始算起,至目前的总天数),然后再换算成另一种日历的具体日期。解法一:程序代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-genera...原创 2019-02-10 11:32:28 · 433 阅读 · 0 评论 -
POJ——1007( DNA Sorting)问题
程序代码如下:import java.util.Scanner;public class Main { static Scanner get=new Scanner(System.in); static int n=get.nextInt();//n表示字符串的长度 static int m=get.nextInt();//m表示字符串的数目 static char c[]=new ...原创 2019-02-07 21:55:45 · 507 阅读 · 0 评论 -
POJ——1006( Biorhythms)问题
程序代码如下:import java.util.Scanner;public class Main{ public static void main(String[] args) { // TODO Auto-generated method stub Scanner get=new Scanner(System.in); int p;//身体 int e;//情感 i...原创 2019-02-07 21:16:45 · 541 阅读 · 0 评论 -
POJ——1005(I Think I Need a Houseboat)问题
程序代码如下:import java.math.BigDecimal;import java.math.RoundingMode;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scan...原创 2019-02-07 21:12:25 · 353 阅读 · 0 评论 -
POJ——1004(Financial Management)问题
程序代码如下:import java.text.DecimalFormat;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner get=new Scanner(System.i...原创 2019-02-07 21:08:46 · 624 阅读 · 0 评论 -
POJ——1003(Hangover)问题
程序代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub double d; Scanner get=new Scanner(System.in); while(get.hasN...原创 2019-02-07 21:01:03 · 307 阅读 · 0 评论 -
POJ——1001(Exponentiation)问题
程序代码如下:import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal r; int n; String st...原创 2019-02-07 20:56:36 · 316 阅读 · 0 评论