随笔分类 -  数据结构与算法

摘要:一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯A**N−1)变换为(A**N−M⋯A**N−1A0A1⋯A**N−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的 阅读全文
posted @ 2021-11-20 09:45 黯渊 阅读(28) 评论(0) 推荐(0) 编辑
摘要:让我们定义d**n为:d**n=p**n+1−p**n,其中p**i是第i个素数。显然有d1=1,且对于n>1有d**n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出 阅读全文
posted @ 2021-11-19 16:32 黯渊 阅读(24) 评论(0) 推荐(0) 编辑
摘要:让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。 输入格式: 每个测试输入包含 1 个测试用 阅读全文
posted @ 2021-11-19 15:01 黯渊 阅读(26) 评论(0) 推荐(0) 编辑
摘要:卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接 阅读全文
posted @ 2021-11-19 14:27 黯渊 阅读(44) 评论(0) 推荐(0) 编辑
摘要:读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ... 第 n+1 行:第 阅读全文
posted @ 2021-11-18 16:25 黯渊 阅读(35) 评论(0) 推荐(0) 编辑
摘要:“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都 阅读全文
posted @ 2021-11-18 16:08 黯渊 阅读(43) 评论(0) 推荐(0) 编辑
摘要:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例 阅读全文
posted @ 2021-11-17 16:28 黯渊 阅读(34) 评论(0) 推荐(0) 编辑
摘要:卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题 阅读全文
posted @ 2021-11-17 16:10 黯渊 阅读(46) 评论(0) 推荐(0) 编辑
摘要:public class 求小和 { public static void main(String[] args) { int arr[] = {1,3,4,2,5}; System.out.println(smallSum(arr)); for(int a:arr){ System.out.pri 阅读全文
posted @ 2021-11-06 16:41 黯渊 编辑
摘要:来自视频学习:https://www.bilibili.com/video/BV13g41157hK?p=3 阅读全文
posted @ 2021-11-06 14:43 黯渊 编辑
摘要:public class 归并排序 { public static void main(String[] args) { int arr[] = {1,5,9,7,5,3,2,6,4,8}; mergeSort(arr); for(int a:arr){ System.out.print(a+" " 阅读全文
posted @ 2021-11-06 14:38 黯渊 阅读(24) 评论(0) 推荐(0) 编辑
摘要:public class Test { public static void main(String[] args) { int arr[] = {1,5,9,7,5,3,2,6,4,8}; System.out.println(getMax(arr)); } public static int g 阅读全文
posted @ 2021-11-06 10:22 黯渊 阅读(109) 评论(0) 推荐(0) 编辑
摘要:public static void charuSort(int arr[]){ if(arr == null || arr.length < 2) return ; int N = arr.length; /* * 1 ~ N - 1 * 2 ~ N - 1 * 3 ~ N - 1 * 4 ~ N 阅读全文
posted @ 2021-11-05 16:50 黯渊 阅读(22) 评论(0) 推荐(0) 编辑
摘要:@Test public void yier(){ int []arr = {1,2,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9}; //假设这两个数设为 a,b int eor = 0; for(int i : arr) eor ^= i; //此时eor = a ^ b in 阅读全文
posted @ 2021-11-05 16:07 黯渊 阅读(71) 评论(0) 推荐(0) 编辑
摘要:public class Main { public static void main(String[] args) { // 创建一个数组,里面有两个 1,四个 2,三个 3 int arr[] = {1,2,3,2,3,2,3,2,1}; System.out.println(yi(arr)); 阅读全文
posted @ 2021-11-05 14:58 黯渊 阅读(90) 评论(0) 推荐(0) 编辑
摘要:public static void bubbletSort(int[]arr){ if(arr == null || arr.length < 2)return; int N = arr.length; /* * 0 ~ N - 1 * 0 ~ N - 2 * 0 ~ N - 3 * 0 ~ N 阅读全文
posted @ 2021-09-13 15:11 黯渊 阅读(25) 评论(0) 推荐(1) 编辑
摘要:public static void selectSort(int arr[]){ //先考虑边界条件 if(arr ==null || arr.length < 2)return ; /* * 0 - N-1 * 1 - N-1 * 2 - N-1 * ....... * i - N-1 * */ 阅读全文
posted @ 2021-09-13 15:10 黯渊 编辑
摘要:参考:https://blog.csdn.net/wcy8733996wcy/article/details/104436407/ @Test public void test12() { //输入n个数据 Scanner sc = new Scanner(System.in); int count 阅读全文
posted @ 2021-03-23 20:08 黯渊 阅读(93) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示