当前位置: 首页 > article >正文

【算法】算法题-20231205

这里写目录标题

  • 一、LCS 01. 下载插件
  • 二、已知一个由数字组成的列表,请将列表中的所有0移到右侧
  • 三、实现一个trim()函数,去除字符串首尾的空格(不能使用strip()方法)

一、LCS 01. 下载插件

简单
小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载。假定每分钟选择以下两种策略之一:
使用当前带宽下载插件
将带宽加倍(下载插件数量随之加倍)
请返回小扣完成下载 n 个插件最少需要多少分钟。
注意:实际的下载的插件数量可以超过 n 个

示例 1:
输入:n = 2
输出:2
解释: 以下两个方案,都能实现 2 分钟内下载 2 个插件
方案一:第一分钟带宽加倍,带宽可每分钟下载 2 个插件;第二分钟下载 2 个插件
方案二:第一分钟下载 1 个插件,第二分钟下载 1 个插件

示例 2:
输入:n = 4
输出:3
解释: 最少需要 3 分钟可完成 4 个插件的下载,以下是其中一种方案: 第一分钟带宽加倍,带宽可每分钟下载 2 个插件; 第二分钟下载 2 个插件; 第三分钟下载 2 个插件。

解题思路
逻辑似乎是这样的:如果你下载两分钟,那么肯定加倍+1分钟下载完。 如果你下载4分钟,那么肯定两次加倍+1分钟下载完。 所以,加倍永远是最优解。 所以,加倍

class Solution:
    def leastMinutes(self, n: int) -> int:
        time_count = 0
        width = 1
        while n > width:
            width = width * 2
            time_count = time_count + 1
        time_count = time_count + 1
        return time_count

二、已知一个由数字组成的列表,请将列表中的所有0移到右侧

已知一个由数字组成的列表,请将列表中的所有0移到右侧。
例如 move_zeros([1, 0, 1, 2, 0, 1, 3]) ,预期返回结果: [1, 1, 2, 1, 3, 0, 0]

def test(nums):
    fast = 0
    slow = 0
    while fast < len(nums):
        if nums[fast]:
            nums[slow], nums[fast] = nums[fast], nums[slow]
            slow += 1
        fast += 1
    return nums


nums = [1, 0, 1, 2, 0, 1, 3]
print(test(nums))

三、实现一个trim()函数,去除字符串首尾的空格(不能使用strip()方法)

题目:实现一个trim()函数,去除字符串首尾的空格(不能使用strip()方法)
例:
1.字符串为空的情况,输入trim(’ ‘) 预期返回结果 ‘’
2.字符串首尾空格数大于1的情况,输入trim(’ a bc ') 预期返回结果 ‘a bc’

def trim(super):
    a = 0
    b = 0
    for i in range(len(super)):
        if super[i] == ' ':
            a += 1
        else:
            break
    for i in range(len(super)):
        if super[-(i + 1)] == ' ':
            b += 1
        else:
            break
    print(super[a:-b])


trim('        23 2    1231  123  ')

在这里插入图片描述


http://www.kler.cn/a/157598.html

相关文章:

  • Git实用指南(精简版)
  • 浅谈目前我开发的前端项目用到的设计模式
  • Unity 碎片化空间的产生和优化
  • 网站灰度发布?Tomcat的8005、8009、8080三个端口的作用什么是CDNLVS、Nginx和Haproxy的优缺点服务器无法开机时
  • WPF 关于界面UI菜单权限(或者任意控件的显示权限)的简单管理--只是简单简单简单简单
  • [HNOI2002] 营业额统计 STL - set集合
  • 【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
  • canvas绘制小丑
  • Mysql、Oracle区分大小写?
  • 【新手解答8】深入探索 C 语言:递归与循环的应用
  • spring cloud nacos整合gateway
  • 十五、机器学习进阶知识:K-Means聚类算法
  • 【SQL SERVER】定时任务
  • 【ARM Trace32(劳特巴赫) 使用介绍 12 -- Trace32 常用命令之 d.dump | data.dump 介绍】
  • Linux: 文档 :相关接口文档手册还是需要仔细阅读
  • mfc 设置excel 单元格的列宽
  • EM32DX-C4【C#】
  • 解决:ERROR: No matching distribution found for rarfile
  • 传输层可靠传输的原理
  • 【网络安全技术】密钥管理
  • llama.cpp部署(windows)
  • LinuxBasicsForHackers笔记 --添加和删​​除软件
  • Notepad++ 安装TextFx插件失败
  • 双目光波导AR眼镜_AR智能眼镜主板PCB定制开发
  • 探讨Unity中的动画融合技术(BlendTree)
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之linux存储管理(5)》(21)