一个取巧找重复值的算法问题
来源:互联网 发布:vb延时函数 编辑:程序博客网 时间:2024/05/17 23:04
题目:
有长度为n的数组
内容是1-n,里面当然会有些重复的(只有重复2次的情况)
举个例子
1,2,7,2,3,7,1,4,8
找出重复的数字
解这个问题的一般思路是,循环一遍,把读取过的数据放入一个数据结构中,比如“哈希表”中
再每次判断哈希表中是否已经存在,来判断是否重复。
但
还有一个方案,巧妙的使用当前数组的“索引”和“这个索引的数据是否为负数”来做共同承担“哈希表”的职责
废话不多说,一看代码就知道了
def a( nums): b = [] for x in nums: if nums[abs(x) - 1] < 0: b.append(abs(x)) else: nums[abs(x) - 1] *= -1 return bif __name__ == '__main__': print(a([8,1,2,3,4,5,2,8]))
阅读全文
0 0
- 一个取巧找重复值的算法问题
- 找重复数字问题
- 找一个字符串中重复的最长子序列
- 找一个字符串中第一个非重复的字符
- 找一个算法
- JSP页面直接获取方法返回值的取巧方法
- 算法问题,找数
- 一个产生不重复随机数的算法
- 网上找来的一个比较好用的3DES,找了很多都有问题。先用着这个吧。再次感谢提供算法的同学
- 一个数组中找重复数
- CKEditor中上传图片传到数据库的一个比较取巧的方法
- 如何获取一个URL传参编码是UTF-8还是GBK的取巧解决方法
- 下载保存文件到手机本地前, 优先选择位置的一个取巧方法
- Android的SDK与ADT不匹配问题 取巧的解决方法
- 不重复int数组里找不存在的值
- 一个JAVA编写的迷宫算法。。自动找迷宫出口
- 一个百度面试题“找珠子”的实现算法
- 【C语言】简单思路找一个数组中重复次数最多的数
- Linux SHELL编程练习case1
- Docker:替代传统虚拟机的“鲸鱼”(Docker: A 'Whale' Replacing Traditional VM)
- 杭电ACM OJ 1035 Robot Motion 继续水
- openlayer 图形样式编辑
- 【Scikit-Learn 中文文档】Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
- 一个取巧找重复值的算法问题
- Spring+MyBatis实现数据库读写分离方案
- HDU 3248
- 使用jQuery ocupload插件实现一键上传
- 排序算法总结
- JVM相关(包括了各个版本的特性)
- C++ string
- Java的运行(基础必备)
- OpenCV-python不懂知识点整理