力扣每日一题 6/12 + 随机一题

  • 博客主页:誓则盟约
  • 系列专栏:IT竞赛 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

2806.取整够买后的账户余额【简单

题目:

一开始,你的银行账户里有 100 块钱。

给你一个整数purchaseAmount ,它表示你在一次购买中愿意支出的金额。

在一个商店里,你进行一次购买,实际支出的金额会向 最近 的 10 的 倍数 取整。换句话说,你实际会支付一个 非负 金额 roundedAmount ,满足 roundedAmount 是 10 的倍数且 abs(roundedAmount - purchaseAmount) 的值 最小 。

如果存在多于一个最接近的 10 的倍数,较大的倍数 是你的实际支出金额。

请你返回一个整数,表示你在愿意支出金额为 purchaseAmount 块钱的前提下,购买之后剩下的余额。

注意: 0 也是 10 的倍数。

示例 1:

输入:purchaseAmount = 9
输出:90
解释:这个例子中,最接近 9 的 10 的倍数是 10 。所以你的账户余额为 100 - 10 = 90 。

示例 2:

输入:purchaseAmount = 15
输出:80
解释:这个例子中,有 2 个最接近 15 的 10 的倍数:10 和 20,较大的数 20 是你的实际开销。
所以你的账户余额为 100 - 20 = 80 。

提示:

  • 0 <= purchaseAmount <= 100

分析问题:

        其实这道题主要就是判断总额100要减几十,那就按照题目要求写判断语句即可,另外这里需要判断 purchaseAmount%10 的余数是否大于5,如果大于5的话要向上取整,否则向下取整。接下来看代码实现。


代码实现:

class Solution:
    def accountBalanceAfterPurchase(self, purchaseAmount: int) -> int:
        import math
        if purchaseAmount%10>=5:
            key=math.ceil(purchaseAmount/10)*10
            return 100-key
        elif 0<purchaseAmount%10<5:
            return 100-purchaseAmount//10*10
        else: return 100-purchaseAmount

 


总结:

这里是代码的逐步解释:

  1. import math
    这一行导入了math模块,该模块提供数学函数。在这种情况下,math.ceil()函数用于将购买金额向上舍入到最接近的10美元的倍数。

  2. if purchaseAmount%10>=5:
    这个条件检查purchaseAmount除以10的余数是否大于或等于5。如果这个条件为真,意味着购买金额更接近下一个10美元的倍数,所以我们需要向上舍入。

  3. key=math.ceil(purchaseAmount/10)*10
    如果步骤2中的条件为真,这一行计算向上舍入的购买金额。math.ceil(purchaseAmount/10)将购买金额向上舍入到最接近的整数,然后乘以10得到下一个10美元的倍数。

  4. return 100-key
    在计算了四舍五入的购买金额(key)之后,这一行通过从100中减去购买金额来计算并返回剩余余额(假设账户初始金额为100美元)。

  5. elif 0<purchaseAmount%10<5:
    这个条件检查purchaseAmount除以10的余数是否大于0且小于5。如果这个条件为真,意味着购买金额更接近前一个10美元的倍数,所以我们不需要向上舍入。

  6. return 100-purchaseAmount//10*10
    如果步骤5中的条件为真,这一行通过直接从100中减去购买金额(向下舍入到最接近的10美元的倍数)来计算余额。使用//运算符进行整数除法以确保结果是整数。

总体来说,这道题并不难,在考察简单的数学问题。


 

3.无重复字符的最长子串【中等

题目:

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。


请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列不是子串。

提示:

  • 0 <= s.length <= 5 * 10**4
  • s 由英文字母、数字、符号和空格组成

题目分析:

         这道题主要在考察字符串的处理和哈希表的运用。但其实这道题用简单的列表ls就可以解出来,我们用i遍历字符串s:

  • 如果i不在ls里,则将i加到ls内,用v标记最长字符串的长度,如果len(ls)>  v,就更新v的值;
  • 如果i在ls里,则找到i在ls里的下标k,更新ls列表为ls[k+1:],即刚好把i以及i前面的字母全扔出去,然后ls末尾加入刚遍历到的i;此时不需要更新v的值,因为这里裁剪了ls,ls的长度只会变小或不变,不会变大。

要特别注意: 这里s的初始长度可以是0和1,并且s内的元素不一定是英文字母! 下面看一下代码实现。

代码实现:

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        n=len(s)
        if n==0: return 0
        if n==1: return 1
        li=[]
        v=0
        for i in s:
            if i not in li:
                li.append(i)
                if len(li)>v: v=len(li)
            else: 
                k=li.index(i)
                li=li[k+1:]
                li.append(i)
        return v


总结:

 以下是代码的详细步骤:

  • 首先获取字符串 s 的长度 n,并对一些特殊情况(长度为 0 或 1)进行处理。
  • 然后创建一个列表 li 用于存储当前不重复的字符序列,以及一个变量 v 用于记录最长子串的长度。
  • 通过遍历字符串 s 中的每个字符,如果该字符不在 li 中,就将其添加到 li 中,并更新 v;如果字符已在 li 中,就找到该字符在 li 中的索引 k,将 li 截断为从索引 k+1 开始的部分,并添加当前字符。
  • 最后返回计算得到的最长子串长度 v

这道题反映的要点如下

  1. 滑动窗口的思想:通过动态调整窗口(这里的列表 li)来寻找符合条件的子串。
  2. 对字符串的遍历和处理:如何逐一分析字符串中的字符。
  3. 利用列表来存储中间状态:记录已经出现的字符。
  4. 对重复字符的处理方式:找到重复字符的位置并进行窗口的调整。

这道题主要考查了:

  1. 对字符串操作的理解和掌握能力。
  2. 逻辑思维能力,如何设计算法来解决不重复子串的问题。
  3. 代码实现能力,将思路转化为实际的代码。

 

“乱花渐欲迷人眼,浅草才能没马蹄。” ——白居易

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法课程笔记——蓝桥第17次直播云课

算法课程笔记——蓝桥第17次直播云课 递归 改成signed&#xff0c;把所有int 改成longlong 100会越界

Linux - 信号阻塞 信号捕捉

Linux - 信号阻塞 & 信号捕捉 信号阻塞信号集操作信号集sigporcmasksigpendingsigaction 信号捕捉用户态与内核态信号捕捉的时机 在博客[Linux - 信号概念 & 信号产生]中&#xff0c;我讲解了信号的基本概念&#xff0c;以及信号是如何产生的&#xff0c;本博客将继续讲…

IPTV,OTT,DVB有线数字电视

当我们买了一台电视回家&#xff0c;满心欢喜的打开&#xff0c;准备收看最新节目的时候&#xff0c;却发现没办法看直播&#xff0c;这个时候去广电办理业务&#xff0c;IPTV&#xff0c;OTT&#xff0c;DTV有线数字电视等这种词语整的眼花缭乱&#xff0c;那么今天我们来解释…

计算机网络 期末复习(谢希仁版本)第4章

路由器&#xff1a;查找转发表&#xff0c;转发分组。 IP网的意义&#xff1a;当互联网上的主机进行通信时&#xff0c;就好像在一个网络上通信一样&#xff0c;看不见互连的各具体的网络异构细节。如果在这种覆盖全球的 IP 网的上层使用 TCP 协议&#xff0c;那么就…

【FreeRTOS】源码概述

FreeRTOS源码概述 参考《FreeRTOS入门与工程实践(基于DshanMCU-103)》里《第7章 FreeRTOS源码概述》 相关文章&#xff1a;http://t.csdnimg.cn/QK0aO 1 FreeRTOS目录结构 使用 STM32CubeMX 创建的 FreeRTOS 工程中&#xff0c; FreeRTOS 相关的源码如下: 主要设计两个目录 C…

【教程】从0开始搭建大语言模型:实现Attention机制

从0开始搭建大语言模型 从0开始搭建大语言模型&#xff1a;实现Attention机制建模长序列存在的问题使用attention机制获得数据间的依赖Self-attention介绍带有可训练权重的self-attention1.生成Q&#xff0c;K&#xff0c;V变量2.计算attention score3.attention weight的获得4…

PS2045L-ASEMI低Low VF肖特基PS2045L

编辑&#xff1a;ll PS2045L-ASEMI低Low VF肖特基PS2045L 型号&#xff1a;PS2045L 品牌&#xff1a;ASEMI 封装&#xff1a;TO-277 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;20A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;45V 最大…

Armbian OS(基于ubuntu24) 源码编译mysql 5.7

最近弄了个S905X3的盒子刷完Armbian OS &#xff08;基于ubuntu24&#xff09;&#xff0c;开始折腾Arm64之旅。第一站就遇到了MySQL的问题&#xff0c;由于MySQL没有提供Arm64版本&#xff0c;又不想塞Docker镜像&#xff0c;因此选择源码来编译MySQL5.7。下面记录详细过程和遇…

马斯克的战略选择:特斯拉的H100显卡转移风波及其影响

引言 最近&#xff0c;一则关于马斯克将特斯拉的H100显卡转给他的新公司xAI的消息引发了广泛关注。这一决定不仅导致特斯拉股价下跌&#xff0c;还引发了关于马斯克战略决策的激烈讨论。本文将深入探讨这一事件的背景、过程及其对特斯拉和整个科技行业的影响。 背景与事件回顾…

8.transformers量化

Transformers 核心设计Auto Classes Transformers Auto Classes 设计:统一接口、自动检索 AutoClasses 旨在通过全局统一的接口 from_pretrained() ,实现基于名称(路径)自动检索预训练权重(模 型)、配置文件、词汇表等所有与模型相关的抽象。 灵活扩展的配置AutoConfig…

本地GPT-window平台 搭建ChatGLM3-6B

一 ChatGLM-6B 介绍 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;新一代开源模型 ChatGLM3-6B 已发布&#xff0c;拥有10B以下最强的基础模型&#xff0c;支持工具调用&#xff08;Function Call&#xff09;、代码执行&#xff08;Code Interpreter&…

【Python】成功解决ModuleNotFoundError: No module named ‘PyQt5‘

【Python】成功解决ModuleNotFoundError: No module named ‘PyQt5’ 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985…

c语言回顾-函数递归

1.递归的介绍 1.1什么是递归 递归是指在一个函数的定义中调用自身的过程。简单来说&#xff0c;递归是一种通过重复调用自身来解决问题的方法。 递归包括两个关键要素&#xff1a;基本情况和递归情况。基本情况是指当问题达到某个特定条件时&#xff0c;不再需要递归调用&am…

SpringBoot整合SpringDataRedis

目录 1.导入Maven坐标 2.配置相关的数据源 3.编写配置类 4.通过RedisTemplate对象操作Redis SpringBoot整合Redis有很多种&#xff0c;这里使用的是Spring Data Redis。接下来就springboot整合springDataRedis步骤做一个详细介绍。 1.导入Maven坐标 首先&#xff0c;需要导…

LLM应用实战:当图谱问答(KBQA)集成大模型(三)

1. 背景 最近比较忙(也有点茫)&#xff0c;本qiang~想切入多模态大模型领域&#xff0c;所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结&#xff0c;对KBQA集成LLM不熟悉的客官可以翻翻之前的文章《LLM应用实战&#xff1a;当KBQ…

弘君资本:苹果股价暴涨,创历史新高!

当地时间6月11日&#xff0c;美股三大指数涨跌纷歧&#xff0c;标普500指数与纳指再创新高。 到收盘&#xff0c;道指跌0.31%&#xff0c;纳指涨0.88%&#xff0c;标普500指数涨0.27%。 苹果大涨逾7%创前史新高。美联储开端召开6月货币方针会议&#xff0c;周三发布利率决定。…

传神论文中心|第11期人工智能领域论文推荐

在人工智能领域的快速发展中&#xff0c;我们不断看到令人振奋的技术进步和创新。近期&#xff0c;开放传神&#xff08;OpenCSG&#xff09;社区发现了一些值得关注的成就。传神社区本周也为对AI和大模型感兴趣的读者们提供了一些值得一读的研究工作的简要概述以及它们各自的论…

如何进行电子故障失效分析FA?

在电子主板生产的过程中&#xff0c;一般都会出现失效不良的主板&#xff0c;因为是因为各种各样的原因所导致的&#xff0c;比如短路&#xff0c;开路&#xff0c;本身元件的问题或者是认为操作不当等等所引起的。 所以在电子故障的分析中&#xff0c;需要考虑这些因素&#x…

5.5 业务流程和业务逻辑设计

一、引言 1.1 项目背景 经过上述的论述&#xff0c;我们讨论一下业务流程和业务逻辑设计&#xff0c;通过合理的业务流程设计和业务逻辑设计&#xff0c;可以提高用户的购物体验&#xff0c;降低用户的操作成本&#xff0c;并确保用户的购物行为符合平台的规则和要求。同时&a…

旅游网页(HTML+CSS+JS)

前言 本篇博客就不给大家讲解了&#xff0c;直接上代码 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;https://blog.csdn.net/2302_78381559/category_12644031.html?spm1001.2014.3001.5482https://blog.csdn.net/2302_78381559/catego…