首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在100个数字的数组中找出5个最高数字的总和

首先,我们可以使用一种称为“快速排序”的算法来对100个数字数组进行排序。这种算法的基本思想是选择一个基准元素,将数组分为比基准元素小和比基准元素大的两个子数组,然后递归地对子数组进行排序。在这个问题中,我们可以选择基准元素为50,因为50是数组中的最大元素。

接下来,我们可以使用一个循环来遍历数组,找到最高的5个元素并计算它们的总和。具体来说,我们可以使用两个变量来存储当前的最高元素和最高的5个元素中的最大值,然后遍历数组中的每个元素,如果元素大于当前的变量,则更新最高的5个元素中的最大值,并将该元素添加到最高的5个元素的总和中。

在遍历完数组后,我们可以得到最高的5个元素的总和为2500。

下面是一个可能的实现:

代码语言:python
复制
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        left = [x for x in arr[1:] if x <= pivot]
        right = [x for x in arr[1:] if x > pivot]
        return quick_sort(left) + [pivot] + quick_sort(right)

def find_top_five_sum(arr):
    arr.sort()
    top_five = [arr[0]]
    for i in range(1, 5):
        top_five.append(arr[i])
        arr.pop(i)
    top_five_sum = sum(top_five)
    return top_five_sum

arr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
top_five_sum = find_top_five_sum(arr)
print(top_five_sum)

输出结果为2500。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

剑指offer(一):找出数组重复数字

❝涓滴之水终可以磨损大石,不是由于它力量强大,而是由于昼夜不舍滴坠。——贝多芬❞ 找出数组重复数字 题目描述 一个长度为 n 数组所有数字都在 0 到 n-1 范围内。...数组某些数字是重复,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组任意一个重复数字。...解法二 利用哈希表,遍历数组,如果哈希表没有该元素,则存入哈希表,否则返回重复元素。时间复杂度为 O(n),空间复杂度为 O(n)。...int t = numbers[i]; numbers[i] = numbers[j]; numbers[j] = t; } } 测试用例 长度为 n 数组包含一个或多个重复数字...; 数组不包含重复数字; 无效测试输入用例(输入空指针;长度为 n 数组包含 0~n-1 之外数字)。

63110

剑指offer之找出数组重复数字

文章目录 找出数组重复数字 方法一 使用hashset 方法二 巧妙采用原地置换法 找出数组重复数字 一个长度为 n 数组 nums 里所有数字都在 0~n-1 范围内。...数组某些数字是重复,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组任意一个重复数字。...set集合 如果有的话直接输出了 方法二 巧妙采用原地置换法 class Solution { public int findRepeatNumber(int[] nums) {...如果没有重复数字,那么正常排序后,数字i应该在下标为i位置,所以思路是重头扫描数组,遇到下标为i数字如果不是i的话,(假设为m),那么我们就拿与下标m数字交换。...交换过程,如果有重复数字发生,那么终止返回ture 看给示例 [2, 3, 1, 0, 2, 5, 3] 第一个是2 发现下标为2元素和2不相等 就和下标为2元素交换 变成[1, 3, 2,

25910

【LeetCode】找出数组重复数字day01

题目 找出数组重复数字一个长度为 n 数组 nums 里所有数字都在 0~n-1 范围内。数组某些数字是重复, 但不知道有几个数字重复了,也不知道每个数字重复了几次。...请找出数组任意一个重复数字。...则会fasle,那就将这个重复元素return 这里需要注意是set进行add得时候其中检查元素重复复杂度是多少呢?...其中hashSetadd是通过HashMapkey来实现那么我们了解一下hashMapputVal()源码 put时候我们会进行插入这个最坏复杂度也O(n)所以也就是O(n) 将数组进行排序...,然后前后比较,其中javaArrays.sort使用了两种排序方法,快速排序和优化合并排序。

57620

找出数组只出现一次数字

一个数组,有一个数字只出现一次,其余数都出现两次,求出那个单独数 可以使用异或或来解决这个问题,因为两个相同数异或之后就是0,0与一个数异或还是这个数,而且异或满足交换律 public static...n ^= arr[i];//与sun+=arr[i]类似,方便理解 } System.out.println(n); } 拓展: 一个数组...,只有两个不同数字出现一次,其余数都出现两次,求出那两个只出现一次数 思路:假设数组是{1,2,3,1},要想找到那两个只出现一次数,只需要将数组里面所有的数字异或一下,得到结果sum,然后将...sum进行移位操作判断是否为1,如果不为1,依次往后,知道右移到位为1时候为止,其实就是确定sum从右往左数第几位是1,从而起到筛选作用, 接下来将数组遍历一遍,判断数组每个数是否满足移k位结果是否为...,所以异或一个num1就可以得到num2 总结:简单来说,就是通过移位操作来达到分类作用,接下来就是使用之前异或方法即可 代码如下 public static int[] Search(int[]

57830

找出数组所有孤独数字(哈希)

题目 给你一个整数数组 nums 。如果数字 x 在数组仅出现 一次 ,且没有 相邻 数字(即,x + 1 和 x - 1)出现在数组,则认为数字 x 是 孤独数字 。...返回 nums 所有 孤独数字。你可以按 任何顺序 返回答案。...- 8 是一个孤独数字,因为它只出现一次,并且 7 和 9 没有 nums 中出现。 - 5 不是一个孤独数字,因为 6 出现在 nums ,反之亦然。...因此,nums 孤独数字是 [10, 8] 。 注意,也可以返回 [8, 10] 。...- 5 是一个孤独数字,因为它只出现一次,并且 4 和 6 没有 nums 中出现。 - 3 不是一个孤独数字,因为它出现两次。 因此,nums 孤独数字是 [1, 5] 。

44830

找出数组中出现一次数字

题目要求 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次元素。...解决方案 有以下三种解决方案: 方法一: //方法一 public int singleNumber(int[] nums){ //1.创建一个Map统计每个数字出现次数...找出只出现一次那两个元素。你可以按 任意顺序 返回答案。...解决方案(进阶版本) //把所有的数字还是异或到一起,得到结果相当于a^b //a^b一定不为0;就可以从异或结果中找到某一个为1bit位 //要根据这个bit位对整个数组进行分组,...这个bit位为1第一组,这个比特位为0是第二组 public int[] singleNumber2(int[] nums){ //先把所有数字异或到一起 int

21810

数组重复数字

题目描述 一个长度为n数组所有数字都在0到n-1范围内。 数组某些数字是重复,但不知道有几个数字是重复。也不知道每个数字重复几次。请找出数组任意一个重复数字。...例如,如果输入长度为7数组{2,3,1,0,2,5,3},那么对应输出是第一个重复数字2。 解题思路 最简单就是用一个数组或者哈希表来存储已经遍历过数字,但是这样需要开辟额外空间。...如果题目要求不能开辟额外空间,那我们可以用如下方法: 因为数组数字都在0~n-1范围内,所以,如果数组没有重复数,那当数组排序后,数字i将出现在下标为i位置。...现在我们重排这个数组,从头到尾扫描每个数字,当扫描到下标为i数字时,首先比较这个数字(记为m)是不是等于i。...如果是,则接着扫描下一个数字;如果不是,则再拿它和m 位置上数字进行比较,如果它们相等,就找到了一个重复数字(该数字在下标为i和m位置都出现了),返回true;如果它和m位置上数字不相等,就把第

2K30

字符串找出连续最长数字

本文链接:https://blog.csdn.net/weixin_42449444/article/details/90137521 题目描述: 读入一个字符串str,输出字符串str连续最长数字串...输出描述: 一行内输出str里连续最长数字串。 输入样例: abcd12345ed125ss123456789 输出样例: 123456789 解题思路: 华为机试、动态规划问题。...设连续最长数字长度maxlen、连续最长数字起始位置start、临时连续最长数字起始位置tempindex、临时连续最长数字长度templen。...先找到第一个数字,以它为起始位置找出当前连续最长数字长度templen,若templen>maxlen,就更新连续最长数字起始位置和长度。...maxlen、连续最长数字起始位置start、临时连续最长数字起始位置tempindex for(int i = 0; i < str.length(); i++) {

2.4K20

字符串找出连续最长数字串(算法)

描述 输入一个字符串,返回其最长数字子串,以及其长度。若有多个最长数字子串,则将它们全部输出(按原字符串相对位置) 本题含有多组样例输入。...1<=len(字符串)<=200 输出描述: 输出字符串中最长数字字符串和它长度,中间用逗号间隔。如果有相同长度串,则要一块儿输出(中间不要输出空格)。 思路: 1、首选获取到最长数字是多少。...2、从map里获取最长数字有哪些。 3、再根据下标排序。...a8a72a6a5yy98y65ee1r2 复制 输出: 123058789,9 729865,2 复制 说明: 样例一最长数字子串为...123058789,长度为9 样例二最长数字子串有72,98,65,长度都为2 */ public static void main(String[] args) {

93920

数组重复数字

"""描述一个长度为n数组所有数字都在0到n-1范围内。 数组某些数字是重复,但不知道有几个数字是重复。也不知道每个数字重复几次。请找出数组任意一个重复数字。...例如,如果输入长度为7数组[2,3,1,0,2,5,3],那么对应输出是2或者3。...存在不合法输入的话输出-1数据范围:0\le n \le 10000 \0≤n≤10000进阶:时间复杂度O(n)\O(n) ,空间复杂度O(n)\O(n)示例1输入:[2,3,1,0,2,5,3]复制返回值...:2复制说明:2或3都是对数据范围:0\le n \le 10000 \0≤n≤10000进阶:时间复杂度O(n)\O(n) ,空间复杂度O(n)\O(n)"""# @param numbers int...整型一维数组# @return int整型#from typing import Listclass Solution: def duplicate(self , numbers: List[int

1.4K10

查找数组重复数字

题目来源于《剑指Offer》面试题3:找出数组重复数字。   // 题目:一个长度为n数组所有数字都在0到n-1范围内。...数组某些数字是重复,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组任意一个重复数字。...例如,如果输入长度为7数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应输出是重复数字2或者3。        ...: (输出) 数组一个重复数字 // 返回值: // true - 输入有效,并且数组存在重复数字 // false - 输入无效,或者数组没有重复数字...numbers, sizeof(numbers) / sizeof(int), duplications, sizeof(duplications) / sizeof(int), true); } // 数组存在多个重复数字

3.9K60

如何快速找出数组中出现一半以上数字

题目: 数组中有一个数字出现次数超过数组长度一半,请找出这个数字。例如输入一个长度为9数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度一半,因此输出2。...基本思路是,遍历数组过程,每次找到一对不相等数,给砍掉,最后活下来幸存者就是有可能是整个数组中出现次数超过数组长度一半那个数。...而且只需要遍历一遍数组就能够知道那个幸存者是哪个数字。 我们准备两个变量,cand和times,cand为候选数字,而times表示候选数字出现次数。...我们潜意识里,1和2这一对不相等数已经被砍掉了,妙吧~ ? 3)上一步已经把times置为0了,说明没有候选人了,当我们遍历3时候,重新把3立为候选人。 ?...10)最后候选人为2,2就有可能是整个数组中出现次数超过数组长度一半那个数 11)重新遍历一遍数组,看看2是不是真的是整个数组中出现次数超过数组长度一半那个数 很明显,只需要两个变量就能完成这个任务

82920

寻找数组重复数字

前言 前面一系列文章分享了数据结构与算法基础知识,接下来分享一些算法题解题思路与实现。欢迎各位感兴趣开发者阅读。 问题描述 有一个数组,现要找出数组任意一个重复元素。...它规则如下: 给定一个长度为n数组数组每个元素取值范围为:0~n-1 数组某些数字是重复,但是不知道哪些数字重复了,也不知道重复了几次 求数组任意一个重复数字 实现思路 这个问题实现思路有三种...声明一个数组:[8, 1, 2, 3, 4, 3, 3, 4, 5] 声明一个哈希表: const hashMap = new HashMap() 遍历数组,判断数组元素是否哈希表。...i = 5时,i号位置元素为3,哈希表,存储i号位置元素,终止循环。...我们构造函数,对调用者传入参数进行校验。

1.4K10

剑指offer(二):不修改数组找出重复数字

—— 佚名❞ 不修改数组找出重复数字 题目描述 一个长度为 n+1 数组所有数字都在 1 到 n 范围内,所以数组至少有一个数字是重复。...请找出数组任意一个重复数字,但不能修改输入数组。例如,如果输入长度为 8 数组 {2, 3, 5, 4, 3, 2, 6, 7},那么对应输出是重复数字 2 或者 3。...解法 解法一 创建长度为 n+1 辅助数组,把原数组元素复制到辅助数组。如果原数组被复制数是 m,则放到辅助数组第 m 个位置。这样很容易找出重复元素。空间复杂度为 O(n)。...= end) { ++count; } } return count; } } 测试用例 长度为 n 数组包含一个或多个重复数字...; 数组不包含重复数字; 无效测试输入用例(输入空指针)。

77530

剑指offer第二版(Java最优解)---找出数组重复数字

相当于: int i=0; //用于接收index数组某一个对象 for(int j = 0; j<index.length; j++){ i = index[j]; } 从哈希表思路拓展,...重排数组:把扫描每个数字(如数字m)放到其对应下标(m下标)位置上,若同一位置有重复,则说明该数字重复。...代码 带测试用例 * Created by wuyupku on 2019-04-14 15:24 * * @Beijing CHINA */ /* * 题目:一个长度为n数组所有数字都在...数组某些数字是重复,但不知道有几个数字重复了, * 也不知道每个数字重复了几次。请找出数组任意一个重复数字。...2.数组不包含重复数字 3.无效输入测试用例(空数组数组数字越界等) ?

50900

《剑指Offer》-- 题目一:找出数组重复数字(Python多种方法实现)

数组重复数字 最近在复习算法和数据结构(基于Python实现),然后看了Python各种“序列”——比如列表List、元组Tuple和字符串String,后期会写一篇博客介绍 数组 这一数据结构。...不过我们先来看《剑指Offer》关于数组一道面试题。 面试题3:数组重复数字 题目一:找出数组重复数字 给定一个长度为 n 数组所有数字都在 0∼n−1 范围内。...数组某些数字是重复,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组任意一个重复数字。...利用哈希表:从头到尾按顺序扫描数组每个数字,每扫到一个数字时候,如果还没有这个数字,就把它加入哈希表。如果哈希表表已经存在了该数字,就找到了一个重复数字。...以下代码都是用Python实现 排序后查找 def find_double_num(nums): """思路一:把输入数组排序,从排序数组找出重复数字 """ nums_sorted

1.4K10

Day3 字符串找出连续最长数字串、数组中出现次数超过一半数字

32 位平台下,指针大小为 4byte,而在 64 位平台下,指针大小为 8byte;计算二维数组大小时,需要通过 行 * 列 * 类型大小 方式进行计算 本题中,a 为一个 二维二级指针数组...,无论是几级指针, 32 位平台中都为 4byte,因此 a 实际占用空间为 3 * 4 * 4 = 48 注意: 数组名表示数组首元素地址,但存在两种特殊情况: sizeof(数组名) 计算是整个数组大小...,会发生截断行为,导致数据读取时出现错位 关于 大小端序相关问题可以查看这篇文章:《C语言进阶——数据在内存存储》 结合 printf 打印时栈帧,可以得到下图中分析 注意: ,先入栈最后出...先入栈、最后出栈;高精度数据向低精度数据进行转换时,会发生 截断 行为,导致数据丢失,因此要注意数据与格式匹配(long long 匹配格式为 lld) 结果:B ---- 编程题 1.字符串找出连续最长数字串...题目链接:OR59 字符串找出连续最长数字串 题目分析:存在一个字符串 str,其中包含数字和其他字符,要求计算出 最长数字子串;题目比较简单,直接 遍历+判断+统计,不断更新 最长数字子串

12920
领券