
Python算法(3.0)
Half_Soul
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
小米OJ(8)最少交换次数
描述: 给出一个无序数列,每次只能交换相邻两个元素,求将原数列变成递增数列的最少交换次数。 如:数列:2,3,1,交换3和1后变成:2,1,3;交换1和2之后变成:1,2,3。总共交换2次。 输入: 逗号隔开的正整数数列。 输出: 正整数 输入样例: 2,3,1 输出样例: 2 思路: 既求输入奇数个数数字的中间数,先将输入数字进行排序输出中间一个数字就可...原创 2019-04-25 22:53:04 · 306 阅读 · 0 评论 -
小米OJ(2)找出单独的数字
描述: 给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。 输入: 输入多个数字,每个数字以空格分开。数字数量N<20,输入数字的最大值小于256。 输出: 输出内容为只出现过唯一一次的数字。 输入样例: 10 10 11 12 12 11 16 输出样例: 16 思路: 以字符...原创 2019-04-21 14:06:17 · 213 阅读 · 0 评论 -
小米OJ(11)构建短字符串
描述: 给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符组合出来,且长串中的每个字符只能用一次。 输入: 一行数据包括一个较短的字符串和一个较长的字符串,用一个空格分隔,如: ab aab bb abc aa cccc uak areuok 输出: 如果短的字符串可以由长字符串中的字符组合出来,返回字符串 “true”,否则返回字符串 "false"...原创 2019-04-29 10:50:44 · 308 阅读 · 0 评论 -
小米OJ(10)爬楼梯
描述: 在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。 请问计算出你可以采用多少种不同的方式爬完这个楼梯。 输入: 一个正整数,表示这个楼梯一共有多少阶。 输出: 一个正整数,表示有多少种不同的方式爬完这个楼梯。 输入样例: 5 10 输出样例: 8 89 思路: 递归算法将大的数字拆分成简单的小数字,当台阶数为1返回一种,当台阶数为2返回两种。...原创 2019-04-29 10:23:32 · 422 阅读 · 0 评论 -
小米OJ(1)a+b
描述: 给出两个非负数a和b,输出a+b的结果。 输入: 多组输入: 包含两个非负数aa和bb,以空格分隔;aa和bb保证小于2^{32}232. 输入样例: 233 666 123 0 输出样例: 899 123 小提示 : 在小米OJ中,用例通过STDIN输入,以EOF结束,如果为多组输入,题目会明确说明。 代码: impo...原创 2019-04-19 13:32:00 · 385 阅读 · 0 评论 -
小米OJ(6)交叉队列
描述: 给出三个队列 s1,s2,s3 ,判断 s3 是否是由 s1 和 s2 交叉得来。 如:s1 为 aabcc , s2 为 dbbca。 当 s3 为 aadbbcbcac 时,返回 true(即将 s1 拆成三部分: aa,bc,c 分别插入 s2 对应位置) 否则返回 false。 输入: aabcc,dbbca,aadbbcbcac 输出: true 输入样例:...原创 2019-04-23 23:09:03 · 300 阅读 · 0 评论 -
小米OJ(5)找出旋转有序数列的中间值
描述: 给出一个有序数列随机旋转之后的数列,如原有序数列为:[0,1,2,4,5,6,7] ,旋转之后为[4,5,6,7,0,1,2]。 假定数列中无重复元素,且数列长度为奇数。 求出旋转数列的中间值。如数列[4,5,6,7,0,1,2]的中间值为4。 输入: 4,5,6,7,0,1,2 输出: 4 输入样例: 1 1,2,3 4,5,6,7,0,1,2 12,13,1...原创 2019-04-22 22:29:24 · 305 阅读 · 0 评论 -
小米OJ(9)移除K位得到的最小值
描述: 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 输入: 一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:1432219 3。 字符串的长度一定大于等于 K 字符串不会以 0 开头 输出: 移除 K 位...原创 2019-04-27 00:02:40 · 512 阅读 · 0 评论 -
小米OJ(4)最长连续数列
描述: 输入一个乱序的连续数列,,输出其中最长连续数列长度,要求算法复杂度为O(n). 输入: 54,55,300,12 1 5,4,3,2,1 1,2,3,4,5,6 输出: 4 2 1 5 6 思路: 输入字符串以逗号分隔数字,将字符串类型通过list,map转化为整形。并通过sort()函数进行排序。确定两个变量l,r分别像两个方向检索连续的数字,最终leng...原创 2019-04-21 22:16:35 · 327 阅读 · 0 评论 -
小米OJ(3)大数相减
描述: 两个长度超出常规整形变量上限的大数相减,请避免使用各语言内置大数处理库,如 Java.math.BigInteger 等。 输入: 有N行测试数据,每一行有两个代表整数的字符串a和b,长度超过百位。规定a>b,a,b>0。测试结果可以用 linux 小工具bc进行测试是否正确。 输出: 返回表示结果整数的字符串。 输入样例: 1231231237812739...原创 2019-04-21 21:53:33 · 325 阅读 · 0 评论 -
小米OJ(7)第一个缺失的正数
描述: 给出一个无序的数列,找出其中缺失的第一个正数,要求复杂度为 O(n) 如:[1,2,0],第一个缺失为3。 如:[3,4,-1,1],第一个缺失为2。 输入: 1,2,0 输出: 3 输入样例: 1,2,0 3,4,-1,1 -1,-3,-5 1,2,3 -1,-10,0 输出样例: 3 2 1 4 1 思路: 多组输入“,”为分割将以字...原创 2019-04-24 23:20:04 · 254 阅读 · 0 评论