【算法(Algorithms)第4版 练习 1.3.20】教程文章相关的互联网学习教程文章

算法练习(一)【代码】【图】

算法练习(一) 反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。 输入 {1,2,3}返回值 {3,2,1}题解 public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}} public class Solution {public ListNode ReverseList(ListNode head) {//判断链表为空或长度为1的情况if(head==null||head.next==null){return head;}ListNode pre = null;//当前节点的前一个节点ListNode next = null;...

Codeup刷题笔记581:《算法笔记》练习题4.1节【代码】

4.1小节:排序(对应编号581) A题 排序 #include <stdio.h> #include <stdlib.h>int main() {int temp,k,j,i,n,a[100];while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++) scanf("%d",&a[i]);for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if(a[j]<a[k]) k=j;}temp=a[i];a[i]=a[k];a[k]=temp;}for(i=0;i<n;i++) printf("%d ",a[i]);printf("\n");}return 0; }总结:输入多组数据用while控制,本题选用的排序算法是选择排序。

<算法导论>练习4.1【代码】

4.1-1 所有元素都是负数时,最大子数组的和就是A中最大的元素。所有程序会返回A中最大的数。 4.1-2 两个for循环嵌套,且最大迭代次数是n,时间复杂度是Θ(n2)\Theta(n^2)Θ(n2) def find_maximum_subarray(a):n=len(a)max_sum=-float('inf')low=0;high=0for i in range(n):sum_da=0for j in range(i,n):sum_da+=a[j]if sum_da>max_sum:max_sum=sum_dalow=ihigh=jreturn low,high,max_sumif __name__ == '__main__':a=[13,-3,-25,20...

【算法练习】洗牌问题【代码】

文章目录 题目描述输入用例输出用例代码题目描述洗牌是一个程序,用于随机一副扑克牌。由于标准洗牌技术被视为薄弱环节,而且为了避免员工通过执行不适当的洗牌来与赌徒合作的“内部工作”,许多赌场采用自动洗牌机。你的任务是模拟洗牌机。 机器根据给定的随机顺序洗牌一副5张4张的牌,并重复给定的次数。假设卡片组的初始状态按以下顺序排列: S1, S2, …, S13, H1, H2, …, H13, …, C1, C2, …, C13, D1, D2, …, D13, J1, J2 ...

[c/c++] 算法笔记 codeup 问题 E: A+B 输入输出练习V【代码】

问题 E: A+B 输入输出练习V 题目描述你的任务是计算若干整数的和。输入输入的第一行是一个正数N,表示后面有N行。每一行的第一个数是M,表示本行后面还有M个数。输出对于每一行数据需要在相应的行输出和。样例输入 Copy2 4 1 2 3 4 5 1 2 3 4 5样例输出 Copy10 15#include<stdio.h>int main(){int n, m, sum = 0, a;scanf("%d", &n); while(n--){sum = 0;scanf("%d", &m);while(m--){scanf("%d", &a);sum += a;}printf("%d\n", sum...

LeetCode初级算法练习题5_只出现一次的数字【代码】【图】

1.我的解题代码: class Solution {public int singleNumber(int[] nums) {if(nums.length == 1) return nums[0];Arrays.sort(nums);int index = -1;for(int i=1;i<nums.length;i=i+2){if(nums[i-1] != nums[i]){index = i-1;break;}if(i == nums.length-2){index = i+1;}}// System.out.println(nums[index]);return nums[index];} }

js算法练习【代码】

1、求 1000 以内所有质数的和 1 <script>2 var temp = 0 ;3 for(var i = 2 ; i <= 1000 ; i ++) {4 var flag = true ;5 for(var j = 2 ; j <= i / 2; j++) {6 if(i % j == 0) {7 flag = false ;8 break ;9 } 10 } 11 if(flag == true) { 12 temp += i ; 13 ...

算法练习(排序与检索)【代码】【图】

1. private class largestNumberComparator implements Comparator<String> {@Overridepublic int compare(String o1, String o2) {String s1 = o1 + o2;String s2 = o2 + o1;return s2.compareTo(s1);}}public String largestNumber(int[] nums) {int n = nums.length;if (nums.length == 1) {return String.valueOf(nums[0]);}String[] strings = new String[n];for (int i = 0; i < n; i++) {strings[i] = String.valueOf(nums[...

基础向算法题练习记录【代码】【图】

基础向算法题练习记录 文章目录 基础向算法题练习记录最大回文乘积平方的和与和的平方之差连续数字最大乘积方阵中的最大乘积大和最长考拉兹序列网格路径最大路径和1000位斐波那契数最大回文乘积 回文数就是从前往后读和从后往前读都一样的数。由两个2位数相乘得到的最大的回文数是 9009=9199。 求由两个3位数相乘得到的最大的回文数。 暴力枚举把得到的答案拆解对调和原数比对加入循环找出其中最大的,分层写代码可读性好 #include...

python算法专项(一)——基础练习【代码】【图】

正在学习方老师的课程,打算边学习边写一个系列的博客,从python的基础练习到深度学习,方老师的教学非常仔细,在此表示感激。也希望通过此次学习让自己编程水平更上一层楼,不辜负自己,也不辜负老师的耐心教导——2021.2.6 目录 1、5猴分桃问题2、翻扑克牌问题3、100阶乘,进阶4、囚犯放风问题5、猜姓名游戏1、5猴分桃问题 题目: 代码: def getPeaches(monkeys):unit = 1while True:ok,peaches = divide((monkeys-1)*unit,mon...

算法基础练习-_05将整数的奇偶位互换【代码】

将整数的奇偶位互换 import org.assertj.core.api.Assertions;public class _05_交换奇偶位 {public static void main(String[] args) {int a = 0b01000000_00000000_00000000_00000000;System.out.println(a);int b = m(a);System.out.println(b);Assertions.assertThat(b).isEqualTo(0b10000000_00000000_00000000_00000000); //一个第三方库,判断b是否和括号里的一致}private static int m(int i) {int ou = i & 0xaaaaaaaa;//...

算法练习(1)【图】

算法练习(1) 题集 1.乌托邦数 private static void analyse(int inNum) { BigInteger result = new BigInteger("1"); BigInteger MUL = new BigInteger("2"); BigInteger ADD = new BigInteger("1"); for(int i=0;i<inNum;i++) { if(i%2==0) { result = result.multiply(MUL); }else { ...

String算法考察小练习(康师傅较优解法)【代码】

1 package day2_9;2 3 import java.util.Arrays;4 5 /**6 * @Author Tianhao7 * @create 2021-02-09-15:058 */9 public class StringExer {10 11 12 13 //实现和trim()一样的作用,去掉收尾空格14 public String myTrim(String str) {15 16 int start = 0;17 int end = 0;18 char[] chars = str.toCharArray();19 for (int i = 0; i < chars.length; i++) {20 if (!String...

2021.2.11 算法练习【代码】

567. 字符串的排列 题意:给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。 首先,s2的子串如果是s1的排列之一,那么该子串长度一定等于s1的长度。其次,s1的排列中字符出现的频率一定等于符合条件的s2子串的字符频率 因此,可以使用双指针在s2上设置一个滑动窗口,然后统计该窗口中字符出现的频率是否和s1相等,如果相等,说明符合条件,返回true,反之...

2020年牛客算法入门课练习赛1【代码】

第k小数 链接:https://ac.nowcoder.com/acm/contest/12144/A 来源:牛客网 题目描述 给你一个长度为n的序列,求序列中第k小数的多少。 输入描述: 多组输入,第一行读入一个整数T表示有T组数据。 每组数据占两行,第一行为两个整数n,k,表示数列长度和k。 第二行为n个用空格隔开的整数。 输出描述: 对于每组数据,输出它的第k小数是多少。 每组数据之间用空格隔开 示例1 输入 复制 2 5 2 1 4 2 3 4 3 3 3 2 1 输出 复制 2 3 备注:...