
数据结构与算法
文章平均质量分 53
books1958
Android工程师
展开
-
算法:寻找数组的第二大的元素(不排序、只循环一次)
算法:寻找数组的第二大的元素(不排序、只循环一次)原创 2015-01-15 23:10:52 · 1649 阅读 · 0 评论 -
算法基础:数组指定规则排序问题(Golang实现)
给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序, 如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。原创 2015-07-15 17:37:25 · 3541 阅读 · 1 评论 -
算法基础:整数拆分问题(Golang实现)
一个整数总可以拆分为2的幂的和,例如:7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1总共有6种不同的拆分方式。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入n,输出f(n)原创 2015-07-14 09:57:19 · 1952 阅读 · 0 评论 -
算法基础:删除字符串中出现次数最少的字符(Golang实现)
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。原创 2015-07-07 10:23:34 · 1094 阅读 · 0 评论 -
算法基础:整数排序问题(连续整数只保留首尾两个数字)
实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数。原创 2015-07-06 11:37:25 · 2039 阅读 · 0 评论 -
排列组合问题:n个数中取m个(Golang实现)
排列组合是一个基本的数学问题,本程序的目标是输出从n个元素中取m个的所有排列、组合。原创 2015-07-13 13:17:34 · 9339 阅读 · 2 评论 -
算法基础:排列组合问题-全排列(Golang实现)
【排列组合问题】 一共N辆火车(0<N<10),每辆火车以数字1-9编号,要求以字典序排序输出火车出站的序列号。输入: 包括N个正整数(0<N<10),范围为1到9,数字之间用空格分割,字符串首位不包含空格。 输出: 输出以字典序排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行。原创 2015-07-10 10:33:27 · 6660 阅读 · 0 评论 -
算法基础:大数求和问题
大数求和:给定两个非常大的正整数A和B,位数在50至100之间。求C=A+B;输入:因为A和B很大,从高位到低位,以字符串的形式输入两行数字A和B。A和B的位数在50至100之间。输出:以字符串形式,输出一行,表示A和B的和。原创 2015-07-03 10:04:12 · 2412 阅读 · 0 评论 -
算法基础:周期串问题
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。原创 2015-07-02 10:55:54 · 1140 阅读 · 0 评论 -
算法基础:最大递减数问题(Golang实现)
【最大递减数】问题给出一个非负整数,找到这个非负整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。原创 2015-07-08 13:42:21 · 1220 阅读 · 0 评论 -
算法基础:正整数指定规则排序问题(Golang实现)
给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序 1)如果不足三位,则按照实际位数组成的整数进行比较 2)如果相等,则按照输入字符串中的原始顺序原创 2015-07-09 10:21:56 · 1702 阅读 · 0 评论 -
Golang:生成n个从a到b不重复的随机数
Golang:生成n个从a到b不重复的随机数原创 2015-04-07 18:03:09 · 14806 阅读 · 0 评论 -
排序算法详解(Go语言实现):冒泡排序/选择排序/快速排序/插入排序
算法是程序的灵魂,而排序算法则是一种最基本的算法。排序算法有许多种,本文介绍4中排序算法:冒泡排序,选择排序,快速排序和插入排序,以从小到大为例。原创 2015-01-03 10:56:36 · 6317 阅读 · 1 评论 -
算法基础:田忌赛马问题(Golang实现)
【田忌赛马问题】 输入: 输入有多组测试数据。 每组测试数据包括3行: 第一行输入N(1≤N≤1000),表示马的数量。 第二行有N个整型数字,即渊子的N匹马的速度(数字大表示速度快)。 第三行有N个整型数字,即对手的N匹马的速度。 当N为0时退出。输出: 若通过聪明的你精心安排,如果能赢得比赛(赢的次数大于比赛总次数的一半),那么输出“YES”。 否则输出“NO”。原创 2015-08-14 17:15:01 · 1854 阅读 · 0 评论