力扣刷题之旅:启程篇(二)

      力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。   

--点击进入刷题地址 


1.最后得到的余数

题目描述

        给定两个非空字符串 nums1 和 nums2,编写一个函数来实现将 nums2 不断整除以 nums1 并返回余数,直到余数为 0。返回最后得到的余数。

示例
给定 nums1 = "10", nums2 = "4"  输出 0  
解释:4 ÷ 10 = 0 余 0
代码: 
def divide(nums1: str, nums2: str) -> int:  dividend = int(nums2)  # 被除数  divisor = int(nums1)  # 除数  remainder = dividend  # 余数初始为被除数  while remainder >= divisor:  # 当余数大于等于除数时,继续相除  temp = divisor  # 临时保存除数,以便更新被除数和余数  dividend = remainder  # 被除数更新为余数  remainder = dividend % temp  # 余数更新为被除数除以临时保存的除数的余数  return remainder  # 返回余数

小结:

  • 最后得到的余数:这道题考察了如何通过整除操作来计算两个数的余数。我们使用一个循环来不断更新被除数和余数,直到余数为0。

2.反转链表 

题目描述

给定一个链表,反转链表并返回新的头节点。

示例
输入:1->2->3->4->null  
输出:4->3->2->1->null
代码: 
class ListNode:  def __init__(self, val=0, next=None):  self.val = val  # 节点值  self.next = next  # 下一个节点指针  def reverseList(head: ListNode) -> ListNode:  prev = None  # 用于保存上一个节点,初始值为 None 表示反转前的链表没有节点(空链表)  curr = head  # 当前节点指针,初始指向链表的头部(第一个节点)  while curr:  # 当当前节点不为空时,进行反转操作  next_node = curr.next  # 保存下一个节点,以便反转后连接链表  curr.next = prev  # 将当前节点的下一个节点指向上一个节点,实现反转操作  prev = curr  # 上一个节点更新为当前节点,准备处理下一个节点  curr = next_node  # 当前节点更新为下一个节点,继续处理下一个节点(直到链表结束)  return prev  # 返回反转后的链表的头部(最后一个节点)作为新的头节点(反转前是第一个节点)

小结:

  • 反转链表:这道题考察了如何通过修改链表的指针来反转链表。我们使用两个指针,一个指向当前节点,另一个保存上一个节点,通过修改指针关系实现链表反转。

 3.盛最多水的容器

题目描述: 

        给你 n 个非负整数 a1,a2,...,an,每个数代表一个坐标点 (i, ai)。在坐标内画 n 条垂直线,使得 i 垂直线的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴构成的容器可以容纳最多的水。 

解题思路:

        对于每个坐标点 i,计算以该点为顶点的矩形容器的面积 S = min(ai, a(n-i+1)) * i。其中 min(ai, a(n-i+1)) 表示容器的宽度,i 表示容器的长度。最后返回 S 的最大值即可。

代码实现:
def max_area(height):  max_area = 0  left = 0  right = len(height) - 1  while left < right:  area = min(height[left], height[right]) * (right - left)  if area > max_area:  max_area = area  if height[left] < height[right]:  left += 1  else:  right -= 1  return max_area

        在这个实现中,我们使用双指针来维护容器的左右边界。左指针指向数组的起始位置,右指针指向数组的末尾位置。我们计算以左右指针为边界的矩形容器的面积,则更新最大面积的值,最后返回最大面积即可。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

六大免费的Redis内存分析工具

在我们需要分析Redis实例的内存使用情况时&#xff0c;市场上有着许多免费的开源工具&#xff0c;同时也有少量的付费产品。如果您想更深层次地分析内存相关问题的话&#xff0c;就可能需要用到一些更具针对性的“独门”工具了。 【51CTO.com快译】在我们需要分析Redis实例的内…

内网信息收集-Windows篇

目录 内网信息收集 机器角色分析 本机的信息收集 密码信息 如何查找内网的网段 进程、端口、补丁、共享文件夹 总结 域环境信息收集 MSF信息收集 内网信息收集 机器角色分析 1、判断当前主机是什么服务器&#xff1f; web服务器、开发测试服务器、公共服务器、文件服…

机器学习——集成学习

&#x1f4d5;参考&#xff1a;ysu老师课件西瓜书 期末复习笔记 1.集成学习的基本概念 集成学习&#xff08;ensemble learing&#xff09;通过构建并结合多个学习器来完成学习任务。 有时也被称为多分类器系统&#xff08;multi-classifier system&#xff09;、基于委员会的…

2024年【道路运输企业主要负责人】考试及道路运输企业主要负责人考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试参考答案及道路运输企业主要负责人考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业主要负责人操作证已考过的学员汇总&#xff0c;相对有效帮助道路运输企业主要负责人考试题…

网络异常案例四_IP异常

问题现象 终端设备离线&#xff0c;现场根据设备ip&#xff0c;ping不通。查看路由器。 同一个路由器显示的终端设备&#xff08;走同一个wifi模块接入&#xff09;&#xff0c;包含不同网段的ip。 现场是基于三层的无线漫游&#xff0c;多个路由器wifi配置了相同的ssid信息&a…

五、图像像素算术操作

算术操作无非就是像数值之间的加减乘除操作 一、创建图像像素算术操作——头文件 在项目的头文件中&#xff0c;右击添加&#xff0c;新建项 创建用于图像像素算术操作的头文件&#xff0c;我这边是operater.h 该头文件声明了一个Operater类(class Operater)&#xff0c;该…

海康威视有插件、无插件播放;webrtc直播;西瓜视频播放器;mpegts.js直播;flvjs直播

Notes 视频播放的几种方式 一、Video mp4链接直接播放 二、海康威视3.3插件版直播、云台控制&#xff0c;资源下载地址 index.html引入hk文件中的js文件双击HCWebSDKPlugin.exe安装插件前端参照文件夹hkCamera中的示例代码 三、海康威视3.2无插件版直播&#xff0c;资源下…

Linux---进程间通信 | 管道 | PIPE | MKFIFO | 共享内存 | 消息队列

管道 管道是UNIX中最古老的进程间通信的形式&#xff0c;我们把从一个进程连接到另一个进程的数据流称为一个管道。 一个文件&#xff0c;可以被多个进程打开吗&#xff1f;可以&#xff0c;那如果一个进程打开文件&#xff0c;往文件里面写数据&#xff0c;另一个进程打开文…

【服务器】RAID(独立磁盘冗余阵列)

RAID&#xff08;独立磁盘冗余阵列&#xff09; 一、RAID的介绍二、RAID的分类#2-1 RAID 02-2 RAID 1#2-3 RAID 32-4 RAID 52-5 RAID 62-6 RAID 10(先做镜像&#xff0c;再做条带化)2-7 RAID 01&#xff08;先做条带&#xff0c;再做镜像&#xff09;2-8 RAID比较 三、磁盘阵列…

设备的层次结构 - 驱动程序的复杂层次结构

由于设备对象的水平结构和垂直结构&#xff0c;组成了Windows设备的树形结构图。在Windows中出事的时候会有一个根设备&#xff0c;为了理解简单&#xff0c;我们将PCI总线想象成根总线&#xff08;根总线其实不是PCI总线&#xff0c;只是为了理解方便&#xff09;。查到PCI总线…

【云原生】Docker如何构建镜像

目录 前言 一、基于已有的镜像创建 步骤一&#xff1a;先基于现有的镜像创建一个容器&#xff0c;然后进入容器去完成修改 步骤二&#xff1a;将该容器作为一个模板提交创建为一个新的镜像 步骤三&#xff1a;基于新的镜像&#xff0c;docker run创建一个容器&#xff0c;进…

leetcode刷题(剑指offer) 297.二叉树的序列化和反序列化

297.二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作&#xff0c;进而可以将转换后的数据存储在一个文件或者内存中&#xff0c;同时也可以通过网络传输到另一个计算机环境&#xff0c;采取相反方式重构得到原数据。 请设计一个算法来实现…