小米OJ
我是一片小树叶
树叶虽小,我心很大
展开
-
1、A+B
描述: 和所有的 OJ 平台一样,第一题作为热身题,也是送分题:给出两个正整数 a 和 b,输出 a+b 的结果。输入: 一行数据包含两个正整数, a 和 b,空格分开。(a 和 b 保证小于2^32)。输出: 你的输出是对一行数据处理的结果,也即 a+b 的结果。#include <iostream>using namespace std;int main()...原创 2018-09-15 16:11:38 · 238 阅读 · 0 评论 -
2、找出单独出现的数字
(个人水平有限,请见谅)描述: 给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。输入: 输入多个数字,每个数字以空格分开,回车结束。输出: 输出内容为只出现过唯一一次的数字。#include <iostream>#include <bits/stdc++.h>原创 2018-09-15 16:16:11 · 612 阅读 · 0 评论 -
3、大树相减
(个人水平有限,请见谅!)描述: 两个长度超出常规整形变量上限的大数相减,请避免使用各语言内置大数处理库,如 Java.math.BigInteger 等。输入: 有 N 行测试数据,每一行有两个代表整数的字符串 a 和 b,长度超过百位。规定 a>=b,a, b > 0。 测试结果可以用 linux 小工具 bc进行测试是否正确。输出: 返回表示结果整数的字符串。...原创 2018-09-15 16:20:41 · 408 阅读 · 0 评论 -
4、最长连续数列
(个人水平有限,请见谅!)描述:输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) 。输入:54,55,300,12,56。输出:3。输入样例:100,4,200,1,3,254,55,300,1215,4,3,2,11,2,3,4,5,6输出样例:42156代码示例:#include &lt...原创 2018-09-15 16:31:11 · 566 阅读 · 1 评论 -
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。输入样例:11,2,34,5,6,7,0,1,212,13,14,5...原创 2018-09-15 16:47:55 · 622 阅读 · 0 评论 -
6、交叉队列
(个人水平有限,请见谅!)描述:给出三个队列 s1,s2,s3 ,判断 s3 是否是由 s1 和 s2 交叉得来。 如:s1 为 aabcc , s2 为 dbbca。 当 s3 为 aadbbcbcac 时,返回 true(即将 s1 拆成三部分: aa,bc,c 分别插入 s2 对应位置) 否则返回 false。输入:aabcc,dbbca,aadbbcbcac。输出:...原创 2018-09-15 16:56:19 · 570 阅读 · 0 评论 -
7、第一个缺失正数
(个人水平有限,请见谅!)描述:给出一个无序的数列,找出其中缺失的第一个正数,要求复杂度为 O(n) 如:[1,2,0],第一个缺失为3。 如:[3,4,-1,1],第一个缺失为2。输入:1,2,0。输出:3。输入样例:1,2,03,4,-1,1-1,-3,-51,2,3-1,-10,0输出样例:32141代码示例:#includ...原创 2018-09-15 18:09:31 · 280 阅读 · 0 评论 -
8、最少交换次数
(个人水平有限,请见谅!)描述:给出一个无序数列,每次只能交换相邻两个元素,求将原数列变成递增数列的最少交换次数。 如:数列:2,3,1,交换3和1后变成:2,1,3;交换1和2之后变成:1,2,3。总共交换2次。输入:逗号隔开的正整数数列。输出:正整数。输入样例:2,3,1输出样例:2代码示例:#include <iostream>...原创 2018-09-15 18:17:04 · 2516 阅读 · 1 评论 -
9、移除k位得到最小值
(个人水平有限,请见谅!)描述:有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K。 字符串不会以 0 开头。输入:一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:14322...原创 2018-09-15 18:22:30 · 1002 阅读 · 0 评论 -
10、爬楼梯
(个人水平有限,请见谅!)描述:在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。 请问计算出你可以采用多少种不同的方式爬完这个楼梯。输入:一个正整数,表示这个楼梯一共有多少阶。输出:一个正整数,表示有多少种不同的方式爬完这个楼梯。输入样例:510输出样例:889代码示例:#include <iostream>#includ...原创 2018-09-15 16:50:34 · 299 阅读 · 1 评论 -
11、构建短字符串
(个人水平有限,请见谅!)描述:给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符组合出来,且长串中的每个字符只能用一次。输入:一行数据包括一个较短的字符串和一个较长的字符串,用一个空格分隔,如: ab aab bb abc aa cccc uak areuok。输出:如果短的字符串可以由长字符串中的字符组合出来,返回字符串 “tru...原创 2018-09-16 09:28:27 · 408 阅读 · 0 评论 -
12、找出可能的合的组合
(个人水平有限,请见谅!)描述:给出一组不重复的正整数,从这组数中找出所有可能的组合使其加合等于一个目标正整数 M,如:一组数为 1, 2, 3,目标数为 4,那么可能的加合组合为: 1, 1, 1, 1 1, 1, 2 1, 2, 1 1, 3 2, 1, 1 2, 2 3, 1 。 注意相同的组合数字顺序不同也算一种,所以这个例子的结果是 7 种。输入:一组连续不重复...原创 2018-09-16 09:31:26 · 1088 阅读 · 5 评论 -
13、出现频率最高的前K个元素
(个人水平有限,请见谅!)描述:有一个不为空且仅包含正整数的数组,找出其中出现频率最高的前 K 个数,时间复杂度必须在 O(n log n) 以内。输入:一行数据包括两部分,一个正整数数组(数字间 ‘,’ 分隔)和一个正整数 K (1 ≤ K ≤ 数组长度),数组和 K 之间有一个空格。输出:输出包含前 K 个出现频率最高的数(出现频率相同时,较小的数在前),用 ‘, ...原创 2018-09-16 09:34:38 · 2110 阅读 · 0 评论 -
14、在一个有序的经过旋转的数组里查找一个数
(个人水平有限,请见谅!)描述:假设一个有序的数组,经过未知次数的旋转(例如0 1 2 4 5 6 7 被旋转成 4 5 6 7 0 1 2),从中查找一个目标值,如果存在,返回其下标,不存在,返回-1。注:假设数组无重复数字。输入:输入一个有序经过旋转的数组和要查找的目标数字,数组中各数字用“逗号”分隔,数组和目标数字用“空格”分隔。输出:一个整数,表示该目标数字的下...原创 2018-09-16 09:37:47 · 660 阅读 · 0 评论 -
15、和为零的三元组
(个人水平有限,请见谅!)描述:给出一个整数数组, 数组中是否存在任意 3 个数 a, b, c 满足 a + b + c = 0? 找出数组中所有满足以上条件的三元组,最后输出这些三元组的个数(包含相同元素的三元组只计算一次)。输入:一个包含多个整数(正或负)的字符串,每个整数之间用逗号(,)分隔,如:-1,0,1,2,-1,-4。输出:输入满足加和结果正好等于 0 ...原创 2018-09-16 09:42:08 · 596 阅读 · 0 评论 -
16、四则运算
(个人水平有限,请见谅!)描述:实现一个算法,可以进行任意非负整数的加减乘除组合四则运算。请注意运算符的优先级。输入:请输入一行算式,使用空格分隔数字与运算符。数字为任意非负整数,运算符为+ - * /,不考虑括号。输出:输出算式的运算结果。如果是小数,请向下取整(包含中间步骤结果)。 如果出现“除0异常”,输出err。输入样例:3 + 512 + 45 / 91 / 2...原创 2018-09-18 16:41:20 · 500 阅读 · 0 评论 -
17、小写数字转大写数字
(个人水平有限,请见谅!)描述:实现一个算法,可以将小写数字转换成大写数字。输入:输入一个整数。范围在0~450亿之间。输出:输出对应的大写数字,以“元整”结尾。 大写数字要符合汉语读写习惯。输入样例:052331001406078900000000输出样例:零元整伍元整贰佰叁拾叁元整壹仟零壹元整肆万零陆佰零柒元整捌拾玖亿元整...原创 2018-09-16 18:25:56 · 2114 阅读 · 0 评论