华为笔试题之排序去重

摘要:
明明想邀请一些学生在学校做问卷调查。为了使实验客观,他首先使用计算机生成了N个介于1和1000之间的随机整数。对于重复的数字,只保留一个,其余相同的数字被删除。不同的数字对应不同的学生编号。然后,将数字从小到大排序,并根据排列的顺序找到学生进行调查。请协助明明进行“重复数据消除”和“排序”。

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

 1 def parttion(nums,left,right):
 2     # 基准值
 3     p = nums[left]
 4     low, high = left, right
 5     while low < high:
 6         while (low < high) and (nums[high] >= p):
 7             high -= 1
 8         nums[low], nums[high] = nums[high], nums[low]
 9         while (low < high) and (nums[low] <= p):
10             low += 1
11         nums[low], nums[high] = nums[high], nums[low]
12 
13     return low
14 
15 def quickSort(nums,left,right):
16     #找见基准值的下标,也就是循环遍历汇合的地方
17     if left < right:
18         p = parttion(nums,left,right)
19         quickSort(nums,left,p-1)
20         quickSort(nums,p+1,right)
21     return nums
22 
23 def sortedSet(nums):
24     #首先快速排序
25     #其次去重(双指针)
26     nums = quickSort(nums,0,len(nums) - 1)
27     setNum = [nums[0]]
28     i, j = 0, 1
29     while j <= (len(nums) - 1):
30         if nums[i] != nums[j]:
31             setNum.append(nums[j])
32             i = j
33             j += 1
34         else:
35             j += 1
36 
37     return setNum

免责声明:文章转载自《华为笔试题之排序去重》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java学习|HTTP请求头VLAN实验(2)Trunk接口下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

华为交换机堆叠配置

请参考华为交换机的配置堆栈。[Leaf1-stack-port0/1]portinterfaceg0/0/12启用物理接口12加入堆栈组[Leaf1]stackslot0priority255修改优先级255,默认值为100警告:不要频繁修改优先级,因为它会使堆栈分裂。持续...

解决ubuntu下字体模糊的问题

最近,在ubuntu下使用firefox时,字体总是有点模糊。我搜索了大部分字体,以找到解决问题的方法。据说,这个问题的原因是网站本身设置了字体,这些字体通常在Windows下设置,因此在Linux下字体看起来是虚拟的。对应的中文应该是:编辑=˃选项=˃内容=˃字体和颜色=˃允许网页选择自己的字体。...

Windows系统下MySQL添加到系统服务方法(mysql解压版)

您可能感兴趣的文章:Windows7中配置安装MySQL5.6解压缩版windows下安装、卸载mysql服务的方法Mysql5.7.11在windows10上的安装与配置(解压版)在Windows10上安装解压缩版MySql(推荐)Windows安装MySQL5.7.18解压版的教程windowsserver2016安装MySQL5.7.19解压缩版教程详...

【转】设置:ftl模板文件编辑器

在学习了Freemarker如何生成Word文件的知识后,博客作者使用Eclipse进行开发,并使用内置JSP框架编辑ftl文件。在编辑ftl文件之前,如果您的Eclipse没有指定ftl的编辑方法,则会提示您安装ftl模板的编辑器或使用TextEditor进行编辑。我没有选择在这里为ftl模板安装编辑器,所以我跳过了。...

WindowsForm实现折叠菜单面板

在程序开发的过程中,有时候为了让我们程序的主要内容能够显示的区域更大,我们需要把一些面板折叠起来,今天就简单介绍一种菜单面板折叠的实现。首先,先用panel将构建出整体的页面布局,然后在菜单面板上添加上一个折叠按钮或者图片控件都可以,并将控件的Anchor属性成Top|Right,这样在页面折叠时,控件能够随着panel的宽度进行相对位置移动。private...

js获取table tbody下的tr

为了获得tbody中的所有baitd值,我们可以获得tbody的page元素du下的所有tr元素,然后我们可以通过遍历获得所有td值。Dao使用以下HTML代码作为示例来查看如何获取tbody中的所有td值HTML代码:注意,您必须为tbody设置一个ID,以便通过该ID获取tobody页面元素。...