algorithm
作业
zhou_pp
初入社会,请多多指教
展开
-
1. python 算法题注意点
1.在oj上编程时,要求标准的输入,特别是多行输入,系统是通过按下换行符和Ctrl+d结束的import sysif __name__ == "__main__": strList = [] for line in sys.stdin: #当没有接受到输入结束信号就一直遍历每一行 tempStr = lin...原创 2018-12-21 14:26:01 · 217 阅读 · 0 评论 -
非递归快排
非递归快排Description快速排序的核心思想是使用元素的值对数组进行划分。实现其非递归方案。Input输入的每一行表示一个元素为正整数的数组,所有值用空格隔开,第一个值为数值长度,其余为数组元素值。Output输出的每一行为排序结果,用空格隔开,末尾不要空格。Sample Input 1 13 24 3 56 34 3 78 12 29 49 84 51 9 ...原创 2019-01-08 15:10:40 · 936 阅读 · 0 评论 -
计数排序
计数排序Description实现计数排序,通过多次遍历数组,统计比每一个元素小的其它元素个数,根据该统计量对数据进行排序。Input输入的每一行表示一个元素为正整数的数组,所有值用空格隔开,第一个值为数值长度,其余为数组元素值。Output输出的每一行为排序结果,用空格隔开,末尾不要空格。Sample Input 1 13 24 3 56 34 3 78 12 2...原创 2019-01-08 15:10:00 · 233 阅读 · 0 评论 -
冒泡排序
冒泡排序Description实现冒泡排序。Input输入的每一行表示一个元素为正整数的数组,所有值用空格隔开,第一个值为数值长度,其余为数组元素值。Output输出的每一行为排序结果,用空格隔开,末尾不要空格。Sample Input 1 13 24 3 56 34 3 78 12 29 49 84 51 9 100Sample Output 13 3 9...原创 2019-01-08 15:09:16 · 233 阅读 · 0 评论 -
12 插入排序
插入排序Description实现插入排序。Input输入的每一行代表一个数组,其中的值用空格隔开,第一个值表示数组的长度。Output输出排序的数组,用空格隔开,末尾不要空格。Sample Input 1 13 24 3 56 34 3 78 12 29 49 84 51 9 100Sample Output 13 3 9 12 24 29 34 49 5...原创 2019-01-08 15:08:17 · 177 阅读 · 0 评论 -
11.链表区间逆序
11、链表区间逆序Description将单个链表的每K个节点之间逆序,打印出新链表;最后不足K的节点数不需要逆序;要求时间复杂度为O(n),额外空间复杂度为O(1)。Input输入的每一行的值用空格隔开,第一个表示链表长度,中间为节点值,最后代表K。Output输出的每一行为新的链表,节点值用空格隔开,末尾不要空格。Sample Input 1 8 1 2 3 4...原创 2019-01-08 15:07:20 · 286 阅读 · 0 评论 -
10.链表回文
10、链表回文Description判断一个单向链表是否为回文结构。自定义链表数据结构,要求时间复杂度为O(n),额外空间复杂度为O(1)。Input输入的每一行的值用空格隔开,第一个值为节点个数,后面为每一个节点值Output是回文则输出true,不是则输出false,一行表示一个链表的结果。Sample Input 1 3 1 2 14 1 2 2 13...原创 2019-01-08 15:06:20 · 211 阅读 · 0 评论 -
9.最长公共子序列
9.最长公共子序列Description给定两个字符串,返回两个字符串的最长公共子序列(不是最长公共子字符串),可能是多个。Input输入为两行,一行一个字符串Output输出如果有多个则分为多行,先后顺序不影响判断。Sample Input 1 1A2BD3G4H56JK23EFG4I5J6K7Sample Output 123G456K23G45...原创 2019-01-08 15:05:33 · 168 阅读 · 0 评论 -
8、调整数组使差最小
8、调整数组使差最小Description有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序; 要求:通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小。Input输入为两行,分别为两个数组,每个值用空格隔开。Output输出变化之后的两个数组内元素和的差绝对值。Sample Input 1 100 99 98 1 2...原创 2019-01-08 15:04:25 · 1210 阅读 · 0 评论 -
7.先升后降
Description从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的。Input输入时一个数组,数值通过空格隔开。Output输出筛选之后的数组,用空格隔开。如果有多种解雇哦,则一行一种结果。Sample Input 1 1 2 4 7 11 10 9 15 3 5 8 6Sample Output 11 2 4 7 11 10 9 8 ...原创 2018-12-21 14:43:04 · 1412 阅读 · 0 评论 -
6、固定和的元素对
Description输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字,统计这样两个数的对数。Input输入第一行是数组,每一个数用空格隔开;第二行是数字和。Output输出这样两个数有几对。Sample Input 1 1 2 4 7 11 0 9 1511Sample Output 13class fixednum: ...原创 2018-12-21 14:42:11 · 331 阅读 · 0 评论 -
5、区间第k最小
Description找到给定数组的给定区间内的倒数第K小的数值。Input输入的第一行为数组,每一个数用空格隔开;第二行是区间(第几个数到第几个数,两头均包含),两个值用空格隔开;第三行为K值。Output结果。Sample Input 1 1 2 3 4 5 6 73 52Sample Output 14class minmum: de...原创 2018-12-21 14:41:07 · 388 阅读 · 0 评论 -
4.汉诺塔(变)
Description汉诺塔问题中限制不能将一层塔直接从最左侧移动到最右侧,也不能直接从最右侧移动到最左侧,而是必须经过中间。求当有N层塔的时候移动步数。Input输入的第一行为N。Output移动步数。Sample Input 1 2Sample Output 18 #include<iostream> using namespace st...原创 2018-12-21 14:37:36 · 190 阅读 · 0 评论 -
3. 数组和窗口
Description给定一个整型数组arr和一个大小为w的窗口,窗口从数组最左边滑动到最右边,每次向右滑动一个位置,求出每一次滑动时窗口内最大元素的和。Input输入的第一行为数组,每一个元素使用空格隔开;第二行为窗口大小。Output输出一个值。Sample Input 1 4 3 5 4 3 3 6 73Sample Output 132from...原创 2018-12-21 14:34:57 · 414 阅读 · 0 评论 -
子矩阵问题
1.Description给定一个矩形区域,每一个位置上都是1或0,求该矩阵中每一个位置上都是1的最大子矩形区域中的1的个数。Input输入的每一行是用空格隔开的0或1。Output输出一个数值。Sample Input 1 1 0 1 11 1 1 11 1 1 0Sample Output 16import sysclass Soluti...原创 2018-12-21 14:33:20 · 368 阅读 · 0 评论 -
1.子数组的取值范围
Description给定数组arr和整数num,求arr的连续子数组中满足:其最大值减去最小值的结果大于num的个数。请实现一个时间复杂度为O(length(arr))的算法。Input输入的第一行为数组,每一个数用空格隔开,第二行为num。Output输出一个值。Sample Input 1 3 6 4 3 22Sample Output 16de...原创 2018-12-21 14:29:08 · 1055 阅读 · 0 评论 -
非递归合并排序
非递归合并排序Description合并(归并)排序的核心思想是:每次从中间位置将数组分组再分别排序。请实现其非递归方案。Input输入的每一行表示一个元素为正整数的数组,所有值用空格隔开,第一个值为数值长度,其余为数组元素值。Output输出的每一行为排序结果,用空格隔开,末尾不要空格。Sample Input 1 13 24 3 56 34 3 78 12 29...原创 2019-01-08 15:11:22 · 551 阅读 · 0 评论