题目: 给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度为O(N),且要求不能用非基于比较的排序 public static int maxGap(int nums[]) { if (nums == null || nums.length < 2) { return 0; } int len = nums.length; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int i = 0; i < l
非相邻数最大和 ///*任意选若干个不相邻的数得到的和最大*/ #include<cstdio> #include<cstring> #include<queue> #include<iostream> #define maxn 105 #define maxm 10005 #define INF 0x3f3f3f3f #define LL long long using namespace std; int n,m,t; int a[maxn]; int
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 67252 Accepted Submission(s): 28829 Problem Description A ring is compose of n circles as shown in diagram. Put natural numb
LOWB 三人组 分清有序区跟无序区 冒泡排序 思路: 首先,列表每两个相邻的数,如果前边的比后边的大,那么交换和两个数.... 冒泡排序优化 如果一趟没有发生任何交换 那么证明列表已经是有序的了 import random from cal_time import cal_time # 计算时间的 装饰器 @cal_time def bubble_sort(li): for i in range(len(li)-1): # i表示第i趟 # 第i趟无序区位置[0,n-i-1] for j in
最近在准备笔试题和面试题,把学到的东西整理出来,一来是给自己留个笔记,二来是帮助大家学习. 题目: 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: 输入:[1,2,3,5,2,3],6 返回:[1,2,2,3,3,5] 代码示例: 冒泡排序:O(n^2) 最基本的排序,不多解释. class BubbleSort: def bubbleSort(self, A, n): for x in xrange(n): for y in xrange(n-x-1): if A[y]