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

[算法小练习]求两个数的最大公约数【代码】

原文链接:http://www.cnblogs.com/lovepurple/archive/2013/04/09/3010313.html直接上代码,算法的核心思想就是大数除小数,如果得出来的数有余数,把这个余数做为下一次的除数,上一次的除数做为被除数,直到最后相除的余数为0,则除数即为最大公约数 本算法里使用的是递归的思路。/* CommonDivisor 求最大公约数*/ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using Syste...

js 基础算法练习题

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>js简单计算题</title> </head> <body> <h1>1、计算从1加到100的和</h1> <script> var sum = 0; for(var i=1;i<=100;i++){ sum = sum+ i; } document.write(sum); </script> <h1>2、求出1-100以内的质数</h1> <script> /*1-100所有的质数*/ var i = 0; var j = 0; for(i = 1; i <= 100; i++) { var...

算法练习(二)

codeup 5901题目描述 读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 输入 一行字符串,长度不超过255。 输出 如果是回文串,输出“YES”,否则输出“NO”。 样例输入12321样例输出YES#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn=256; int main(){char str[maxn];gets(str);int len = strlen(str);bool ...

野生前端的数据结构练习(11)动态规划算法【图】

【摘要】 dynamic programming被认为是一种与递归相反的技术,递归是从顶部开始分解,通过解决掉所有分解出的问题来解决整个问题,而动态规划是从问题底部开始,解决了小问题后合并为整体的解决方案,从而解决掉整个问题。 一.动态规划算法 dynamic programming被认为是一种与递归相反的技术,递归是从顶部开始分解,通过解决掉所有分解出的问题来解决整个问题,而动态规划是从问题底部开始,解决了小问题后合并为整体的解决方案,...

野生前端的数据结构练习(12)贪心算法

【摘要】 贪心算法求解背包问题实际上很像人工求解,如果你是一个大盗,自己带着背包在宝库挑东西,总不能拿一张草稿纸出来开始动态规划或手动递归吧,那等你求出结果来估计警察也来了。 参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/GreedyAlogrithm 一.贪心算法 贪心算法属于比较简单的算法,它总是会选择当下最优解,而不去考虑单次递归时是否会对未来造成影响,也就是说不考虑得到的解是否是全局...

算法练习题---有效的括号【代码】

给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses解...

算法练习题---罗马数字转int【代码】

连接:https://leetcode-cn.com/problems/roman-to-integer/submissions/ 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数...

算法练习题---回文数【代码】

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。 解法一:将数字反转后,直接比较两个数字的大小package com.zx.leetcode.isPalindrome;/*** @Author JAY* @Date 2...

Java算法练习——回文数【代码】

题目链接 题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1 输入: 121 输出: true 示例 2 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 题解 public boolean isPalindrome(int x) {if(x < 0 || (x % 10 == 0 && x != 0)){return...

(欧拉图 并查集 别犯傻逼的错了) 7:欧拉回路 OpenJudge 数据结构与算法MOOC / 第七章 图 练习题(Excercise for chapter7 graphs)【代码】

7:欧拉回路 http://dsalgo.openjudge.cn/graph/7/描述 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路 给定一个无向图,请判断该图是否存在欧拉回路 输入输入数据包含若干测试用例每个测试用例的第一行是两个正整数,分别表示图的节点数N(1 < N < 1000)和边数M随后的M行对应M条边,每行有两个正整数,分别表示这条边上的两个节点的编号(节点编号从1到N)当N为0时输入结束输出每个测试用例的输出占...

Java算法练习——两数相加【代码】

题目链接 题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 题解 /*** Definition for singly-linked list.* public...

算法练习之报数, 最大子序和【代码】

1.报数 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211。 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。 注意:整数顺序将表示为一个字符串。示例 1: 输入: 1 输出: ...

算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置【代码】

最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 java/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }*...

JavaScript算法练习:关于字符串中每个单词的首字母大写化问题著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 原文: https://www.w3cplus.com/ja【代码】

1、for循环:var a = Hi, my name\s Han Meimei, a SOFTWARE engineer; //for循环 function titleCase(s) { var i, ss = s.toLowerCase().split(/\s+/); for (i = 0; i < ss.length; i++) { ss[i] = ss[i].slice(0, 1).toUpperCase() + ss[i].slice(1); } return ss.join( ); } console.log(titleCase(a)); 2、for循环+replace://for循环+replace function titleCase1(str) { //将字符串分解为数组并将其小写化 v...

数据结构算法练习(一)

目录 定义数组类实现动态定义长度,添加,插入,编辑,查询,搜索,排序#!/usr/bin/python # -*- coding: UTF-8 -*-class ArrayClass:'数组类' #类文档字符串# 数组声明def __init__(self,len=10):self.len = lenself.size=0self.arr = [0 for i in range(len)]# 数组长度def count(self):return self.len# 数组添加def add(self,value):self.arr[self.size] = valueself.size +=1return self.arr# 数组插入def insert(sel...