力扣刷题记录——1287. 有序数组中出现次数超过25%的元素、1299. 将每个元素替换为右侧最大元素 、1413. 逐步求和得到正数的最小值

news2024/11/23 6:26:37

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——1287. 有序数组中出现次数超过25%的元素、1299. 将每个元素替换为右侧最大元素 、1413. 逐步求和得到正数的最小值 》。 不知不觉刷了100道力扣题啦!接下来转刷蓝桥杯的真题!

目录

1287. 有序数组中出现次数超过25%的元素

        题目描述

        解题思路

        解题代码 

1299. 将每个元素替换为右侧最大元素

        题目描述

        解题思路

        解题过程

1413. 逐步求和得到正数的最小值 

        题目描述

        解题思路

        解题代码 


1287. 有序数组中出现次数超过25%的元素

题目描述

给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。

请你找到并返回这个整数

示例:

输入:arr = [1,2,2,6,6,6,6,7,10]
输出:6

解题思路

恰好有一个整数超过25%,说明这个整数是出现次数最多的,所以只要找到出现次数最多的元素就可以了。

解题代码 

def findSpecialInteger(arr: list[int]) -> int:
    num_dic = {}
    for i in set(arr):
        num_dic[arr.count(i)] = i
    return num_dic[max(list(num_dic.keys()))]

1299. 将每个元素替换为右侧最大元素

题目描述

给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。

完成所有替换操作后,请你返回这个数组。

示例 1:

输入:arr = [17,18,5,4,6,1]
输出:[18,6,6,6,1,-1]
解释:
- 下标 0 的元素 --> 右侧最大元素是下标 1 的元素 (18)
- 下标 1 的元素 --> 右侧最大元素是下标 4 的元素 (6)
- 下标 2 的元素 --> 右侧最大元素是下标 4 的元素 (6)
- 下标 3 的元素 --> 右侧最大元素是下标 4 的元素 (6)
- 下标 4 的元素 --> 右侧最大元素是下标 5 的元素 (1)
- 下标 5 的元素 --> 右侧没有其他元素,替换为 -1

示例 2:

输入:arr = [400]
输出:[-1]
解释:下标 0 的元素右侧没有其他元素。

解题思路

用for循环,用列表切割的方式找到最大值,最后一个元素用-1,返回目标元素。

解题过程

def replaceElements(arr: list[int]) -> list[int]:
    if len(arr) == 1:
        return [-1]
    else:
        result = []
        for i in range(len(arr)):
            if i == len(arr)-1:
                result.append(-1)
            else:
                result.append(max(arr[i+1::]))
        return result

超出时间限制,arr[i+1::]那里有很大问题,每一次都要开辟新的空间。逆向比较,并且使用动态规划的思想求解。

def replaceElements(arr: list[int]) -> list[int]:
    if len(arr) == 1:
        return [-1]
    else:
        n = len(arr)  # 获得长度
        Max = max(0, arr[n - 1])  # 获得最大值
        arr[n - 1] = -1  # 不管结果如何,最后一个都是-1(初始化)
        for i in range(n - 2, -1, -1):  # 反向迭代倒数两个之前的数(因为最后一组为-1)
            temp = arr[i]  # 每次迭代获取一次该下标对应的值
            arr[i] = Max  # 将刚刚得出的最大值存入该位置
            Max = max(temp, Max)  # 比对最大值,重置最大的
        return arr

1413. 逐步求和得到正数的最小值 

题目描述

给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。

你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。

请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。

示例 1:

输入:nums = [-3,2,-3,4,2]
输出:5
解释:如果你选择 startValue = 4,在第三次累加时,和小于 1 。
                累加求和
                startValue = 4 | startValue = 5 | nums
                  (4 -3 ) = 1  | (5 -3 ) = 2    |  -3
                  (1 +2 ) = 3  | (2 +2 ) = 4    |   2
                  (3 -3 ) = 0  | (4 -3 ) = 1    |  -3
                  (0 +4 ) = 4  | (1 +4 ) = 5    |   4
                  (4 +2 ) = 6  | (5 +2 ) = 7    |   2

示例 2:

输入:nums = [1,2]
输出:1
解释:最小的 startValue 需要是正数。

示例 3:

输入:nums = [1,-2,-3]
输出:5

解题思路

累加通过一个列表记录,返回列表最小值,如果是正数直接返回1,是负数返回相反数+1。

解题代码 

def minStartValue(nums: list[int]) -> int:
    temp = []
    all_num = 0
    for i in range(len(nums)):
        all_num += nums[i]
        temp.append(all_num)
    print(temp)
    min_num = min(temp)
    if min_num >=0:
        return 1
    else:
        return -min_num+1

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vector的模拟实现】

目录 1 类的成员变量 2 常用成员函数和迭代器 3 增删查改 3.1 reverse 3.2 push_back 3.3 resize 3.4 insert && erase 4 默认成员函数 4.1 构造函数 4.2 拷贝构造 4.3 赋值运算符重载 4.4 析构函数 前面我们详细介绍了string类的使用,vector的…

关于 JSON 数据格式的完全使用指南

前言 本文将对 JSON 的语法、解析、序列化进行详细的说明,帮助大家掌握 JSON 的使用方式。 如果文中有不对、疑惑或者错字的地方,欢迎在评论区留言指正🌻 一、JSON简介 在 JSON 之前,XML 曾经一度成为互联网上传输数据的事实标…

【论文阅读】【剪枝】Learning Efficient Convolutional Networks through Network Slimming

摘要 深度卷积神经网络(CNN)在许多实际应用中的部署在很大程度上受到其高计算成本的阻碍。在本文中,我们提出了一种新的神经网络学习方案,以同时1)减小模型大小;2) 减少运行时内存占用&…

Kali Linux- 社会工程及压力工具教程

在本章中,我们将了解 Kali Linux 中使用的社会工程工具。 文章目录社会工程Kali Linux - 压力工具SlowhttptestinvitefloodTHC-SSL-DOS总结社会工程 社会工程师工具包 (SET) 是一个专为社会工程设计的开源渗透测试框架。SET具有许多自定义攻…

第九章(12):STL之常用查找算法

文章目录前情回顾常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if下一座石碑🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,在学习C/C的路上会越走越远,后面不定期更新有关C/C语法&#xff0…

读懂用户之用户调研怎么做?(内附模板教程)

随着互联网的发展,不管是做产品设计、运营,还是市场推广,我们都需要思考的是“用户真正想要的是什么?”。这时候,用户调研的重要性就凸显出来了。 一、什么是用户调研 用户调研,指通过各种方式得到受访者的…

Redis常用指令

3. 常用指令 在这部分中呢,我们家学习两个知识,第一个是key的常用指令,第二个是数据库的常用指令。和前面我们学数据类型做一下区分,前面你学的那些指令呢,都是针对某一个数据类型操作的,现在学的都是对所…

#14环形链表#

环形链表 1题目链接 链接 2思路 slow和fast指向链表的开始 slow一次走一步 fast一次走两步 不带环 fast就会为空 带环 fast就会在环里追上slow 3实现 bool hasCycle(struct ListNode* head) {struct ListNode* slow head, * fast head;while (fast && fast->ne…

微信小程序学习第3天——网络数据请求

一、小程序网络请求限制 1、必须https类型的接口 2、必须将接口的域名添加到信任列表中 二、配置request合法域名 配置步骤:登录微信小程序管理后台 -> 开发 -> 开发设置 -> 服务器域名 -> 修改 request 合法域名 点击修改request合法域名&#xf…

【自动化测试】从0开始玩转docker—— 01软件安装

目的 CI / CD在目前各类互联网企业中已然成为推动软件开发行为的重要基础设施服务。同样的对于测试团队来说更是有着举足轻重的重大意义,无论是测试左移的具象化提现亦或是持续测试的顺利开展,掌握这一技能已是广大软件测试工程师的必修课。分享这一技术…

Springboot+Vue+Uniapp自媒体视频系统

简介:本项目采用了基本的springbootvueuniapp设计的自媒体系统。详情请看主要截图。经测试,本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringbootVueUniapp自媒体视频系统源码作者LHL项目类型Java EE项目 …

C++vector容器

目录 1.vector基本概念 2.构造函数 3.vector赋值操作,,assign 4.vector容量和大小 ,empty,capacity,size,resize 5.vector的插入和删除,push_back,pop_back,insert,erase,clear 6.vector数据存取,at,[],遍历 7.vector互换…

C++之引用(上)

文章目录前言一、引用二、引用的写法三、引用特性1.引用在定义时必须初始化2. 一个变量可以有多个引用3. 引用一旦引用一个实体,再不能引用其他实体三、引用的权限(含例子)四、常引用总结前言 今天要介绍的是C中的一个新概念——引用。 一、…

MobaXterm使用指南

MobaXterm使用指南 1. 介绍 通俗的来讲,MobaXterm就是一款SSH客户端,它帮助我们在Windows操作系统下去连接并操作Linux服务器。MobaXterm 又名 MobaXVT,是一款增强型终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱。MobaXterm 可以开启多…

Django网页+Yolov5垃圾识别系统

Django网页Yolov5垃圾识别系统如需安装运行环境或远程调试&#xff0c;见文章底部个人微信或QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<Django网页Yolov5垃圾识别系统>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易…

代码随想录NO33 |Leetcode 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

贪心LeetCode_860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球今天是贪心第四天的题了&#xff0c;快开始dp了&#xff01;大头啊&#xff01; 860.柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&am…

day28|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

1005.K次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后&#xff0c;返回数组 可能的…

若依框架实现多级联动下拉

最近也是用到了若依的多级联动&#xff0c;效果如下&#xff08;可多级&#xff09; 若依有已经封装好的一套js&#xff0c;难点在于后端数据封装&#xff0c;前端按照封装好的代码引用即可。 这里主要分享下关于后端数据如何封装多层。后端代码直接奉上。 记得要把集合转j…

SpringBoot+Vue+Wx新冠疫苗预约系统

简介&#xff1a;本项目采用了基本的springbootvue微信小程序设计的新冠疫苗预约系统。详情请看主要截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVueWx新冠疫苗预约系统源码作者LHL项目类型Java…

python爬虫正则表达式

博主简介&#xff1a;博主是一个大二学生&#xff0c;主攻人工智能领域研究。感谢缘分让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;C&#xff0c;python&#xff0c;爬虫等方面的知识分享。如果有需要的小伙伴&#xff0c;可以关注博主&#xff…