Leetcode TOP5 题目和解答:这里只提供一种解题思路,希望引导大家持续学习,可以采用FlowUs息流记录自己的学习

LeetCode 是一个在线编程平台,它提供了大量的算法题目供用户练习。

TOP5题目通常指的是 LeetCode 网站上最受欢迎的前5道题目。

以下是 LeetCode TOP5 题目的列表以及它们常见的解题思路和代码示例。

题目1 两数之和

两数之和 - 1. Two Sum

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • Only one valid answer exists.


  • 解题思路:使用哈希表存储遍历过的数字及其索引,对于每个数字,检查目标值(当前数字的和)是否在哈希表中。
def twoSum(nums, target):hash_map = {}for i, num in enumerate(nums):if target - num in hash_map:return [hash_map[target - num], i]hash_map[num] = i

题目14 最长公共前缀

最长公共前缀 - 14. Longest Common Prefix
 

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1:

Input: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Constraints:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] consists of only lowercase English letters.


  • 解题思路:使用横向扫描的方法,逐个字符比较所有字符串,直到遇到不匹配的字符。
def longestCommonPrefix(strs):if not strs: return ""shortest_str = min(strs, key=len)for i, char in enumerate(shortest_str):for other in strs:if other[i] != char:return shortest_str[:i]return shortest_str

题目3 无重复字符的最长子串
 3. Longest Substring Without Repeating Characters
 

Given a string s, find the length of the longest 

substring

 without repeating characters.

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.

Example 2:

Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Constraints:

  • 0 <= s.length <= 5 * 104
  • s consists of English letters, digits, symbols and spaces.

  • 解题思路:使用滑动窗口,记录窗口内字符的索引,如果遇到重复字符,移动窗口的左边界。

def lengthOfLongestSubstring(s):char_map = {}start = maxLength = 0for end in range(len(s)):if s[end] in char_map and char_map[s[end]] >= start:start = char_map[s[end]] + 1char_map[s[end]] = endmaxLength = max(maxLength, end - start + 1)return maxLength

题目4 寻找两个正序数组的中位数

- 4. Median of Two Sorted Arrays
 

Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

The overall run time complexity should be O(log (m+n)).

Example 1:

Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.

Example 2:

Input: nums1 = [1,2], nums2 = [3,4]
Output: 2.50000
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.

Constraints:

nums1.length == m

nums2.length == n

0 <= n <= 1000

0 <= m <= 1000

1 <= m + n <= 2000

-10^6 <= nums1[i], nums2[i] <= 10^6
 

  • 解题思路:使用二分查找法来找到两个数组的分割点,使得左边的和等于右边的和,或者左边的和比右边的和多1。

def findMedianSortedArrays(nums1, nums2):nums1, nums2 = sorted(nums1 + nums2)return (nums1[len(nums1) // 2] + nums1[(len(nums1) - 1) // 2]) / 2

题目10 正则表达式匹配
 

10. 正则表达式匹配

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。

  • '.' 匹配任意单个字符
  • '*' 匹配零个或多个前面的那一个元素

所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。

示例 1:

输入:s = "aa", p = "a"
输出:false
解释:"a" 无法匹配 "aa" 整个字符串。

示例 2:

输入:s = "aa", p = "a*"
输出:true
解释:因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。

示例 3:

输入:s = "ab", p = ".*"
输出:true
解释:".*" 表示可匹配零个或多个('*')任意字符('.')。

提示:

  • 1 <= s.length <= 20
  • 1 <= p.length <= 20
  • s 只包含从 a-z 的小写字母。
  • p 只包含从 a-z 的小写字母,以及字符 . 和 *
  • 保证每次出现字符 * 时,前面都匹配到有效的字符
    解题思路:使用动态规划,创建一个二维数组 dp,其中 dp[i][j] 表示字符串 s 的前 i 个字符与字符串 p 的前 j 个字符是否匹配。
    def isMatch(s, p):dp = [[False] * (len(p) + 1) for _ in range(len(s) + 1)]dp[0][0] = Truefor j in range(2, len(p) + 1):if p[j - 1] == '*':dp[0][j] = dp[0][j - 2]for i in range(1, len(s) + 1):for j in range(1, len(p) + 1):if p[j - 1] == '*':dp[i][j] = dp[i][j - 2] or (s[i - 1] == p[j - 2] or p[j - 2] == '.') and dp[i - 1][j]else:dp[i][j] = dp[i - 1][j - 1] and (s[i - 1] == p[j - 1] or p[j - 1] == '.')return dp[-1][-1]

    FlowUs 是一款灵活的笔记和知识管理工具,它提供了多种功能,使得工程师和其他专业人士能够记录和组织他们的代码、学习笔记和思考。以下是一些FlowUs的主要特点,以及它们如何帮助工程师进行记录和思考:

  • 多维数据视图:FlowUs 支持多种数据视图,如列表视图、看板视图、日历视图等,这使得用户可以根据自己的需求灵活地组织信息。

  • 嵌入代码块:FlowUs 允许用户在笔记中嵌入代码块,这对于记录代码片段、代码示例或者编程思想非常有用。

  • Markdown 支持:FlowUs 支持 Markdown 语法,这意味着用户可以使用简洁的格式来编写笔记,包括格式化文本、链接、列表等。

  • 知识库构建:用户可以在 FlowUs 中创建知识库,将相关的笔记和文档组织在一起,构建一个系统化的知识体系。

  • 团队协作:FlowUs 支持团队协作功能,工程师可以与团队成员共享笔记、文档和代码,实现知识的共享和团队协作。

  • 集成第三方服务:FlowUs 可以与许多第三方服务集成,如GitHub、Google Drive等,方便用户将外部资源链接到笔记中。

  • 自定义工作流:用户可以根据自己的工作流程自定义 FlowUs 的使用方式,比如设置提醒、自动化任务等。

  • 移动和桌面应用:FlowUs 提供了移动和桌面应用,使用户可以在任何设备上访问和编辑他们的笔记。

  • 数据安全:FlowUs 提供数据加密和备份功能,确保用户数据的安全性。

  • 学习和思考记录:工程师不仅可以记录代码,还可以记录学习过程中的思考、问题和解决方案,帮助他们更好地理解和掌握新知识。

    FlowUs 的这些功能使得它成为工程师和其他专业人士进行知识管理和个人生产力提升的有力工具。

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

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

相关文章

html5 video去除边框

video的属性&#xff1a; autoplay 视频在就绪后自动播放。 controls 显示控件&#xff0c;比如播放按钮。 height 设置视频播放器的高度。 width 设置视频播放器的宽度。 loop 循环播放 muted 视频的音频输出静音。 poster 视频加载时显示的图像&#xff0c;或者在用户点击播…

短视频利器 ffmpeg (2)

ffmpeg 官网这样写到 Converting video and audio has never been so easy. 如何轻松简单的使用&#xff1a; 1、下载 官网&#xff1a;http://www.ffmpeg.org 安装参考文档&#xff1a; https://blog.csdn.net/qq_36765018/article/details/139067654 2、安装 # 启用RPM …

clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装

前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…

聚类模型的算法性能评价

一、概述 作为机器学习领域的重要内容之一&#xff0c;聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类&#xff0c;就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类&#xff0c;使得同一个簇内的样本有着更相近的属性。依不同的实现策略&#xff0c;聚类…

g++、make、cmake三种方式来编译ros2的C++节点

上面我们用g、make、cmake三种方式来编译ros2的C节点。用cmake虽然成功了&#xff0c;但是CMakeLists.txt的内容依然非常的臃肿&#xff0c;我们需要将其进一步的简化 ROS2前置基础教程 | 小鱼教你用CMake依赖查找流程_ros2cmakelist-CSDN博客

力扣哈希刷题——总结篇【三】

前言 哈希篇题目完成&#xff0c;学到那些方法呢&#xff1f;回顾一下。 方法 &#xff08;1&#xff09;“判断一个元素有没有在某个集合中出现过”——可以考虑哈希结构。 &#xff08;2&#xff09;哈希结构&#xff1a;数组&#xff1f;set&#xff1f;map&#xff1f;选…

华为HCIP Datacom H12-821 卷16

1.判断题 在 VRRP 中,当设备状态变为 Master 后,,会立刻发送免费 ARP 来刷新下游设备的 MAC 表项,从而把用户的流量引到此台设备上来 A、对 B、错 正确答案: A 解析: 2.判断题 路由选择工具 route- policy 能够基于预先定义的条件来进行过滤并设置 BGP

canvas画布旋转问题

先说一下为什么要旋转的目的&#xff1a;因为在画布上签名&#xff0c;在不同的设备上我需要不同方向的签名图片&#xff0c;电脑是横屏&#xff0c;手机就是竖屏&#xff0c;所以需要把手机的签名旋转270&#xff0c;因此写了这个方法。 关于画布旋转的重点就是获取到你的画布…

typescript 基本类型

基本类型注解 任意类型 let value: any ;string类型 let message: string hello world;number类型 let orderid: number 0;booblean类型 let openDiolog: boolean false;字符串类型数组 let teachers: string[]; const students: string[] [张, 王];数字类型数组 c…

软件著作权的申请信息在哪看?

软著对于企业来说是一个非常有价值的知识产权。软著可以保证企业自身的利益得到合法的保护&#xff0c;并且可以反映企业的技术创新能力&#xff0c;能够让企业提高自己的竞争力&#xff0c;在申报一些补贴&#xff0c;招标时作为加分项。因此&#xff0c;很多科技型企业都会申…

1982Springboot宠物美容院管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot宠物美容院管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系 统具有完整的源代码和数据库…

DNS的工作原理

DNS的工作原理 DNS&#xff08;Domain Name System&#xff09;是一个分布式数据库系统&#xff0c;负责将人类可读的域名转换为互联网上计算机可以理解的IP地址。其工作原理大致分为以下几个步骤&#xff1a; 用户在浏览器或应用中输入域名&#xff1a;当用户键入一个网站地…

RisingWave 用户定义函数 (二): Rust x WebAssembly

RisingWave 支持用户使用 Rust 语言编写自定义函数&#xff08;UDF&#xff09;。Rust UDF 会被编译到 WebAssembly&#xff0c;一种最初诞生于浏览器之中的虚拟机汇编语言。随后&#xff0c;这些 UDF 会在 RisingWave 进程中内嵌的 WebAssembly 虚拟机上被即时编译&#xff08…

【QT】Widget

目录 widget常用属性及其作用 enabled geomtry window frame window frame的影响 相关API windowTitle windowIcon qrc机制 qrc使用方式 自定义鼠标图片 设置字体样式 设置鼠标悬停提示 toolTip 控件获取焦点 styleSheet widget常用属性及其作用 属性作用…

手把手教你打造高精度STM32数字时钟,超详细步骤解析

STM32数字时钟项目详解 1. 项目概述 STM32数字时钟是一个集成了时间显示、闹钟功能、温湿度检测等多功能于一体的小型电子设备。它利用STM32的实时时钟(RTC)功能作为核心,配合LCD显示屏、按键输入、温湿度传感器等外设,实现了一个功能丰富的数字时钟系统。 2. 硬件组成 STM…

关于FreeRTOS在MCU(微控制器)和PC(个人计算机)上的源代码的区别

关于FreeRTOS在MCU&#xff08;微控制器&#xff09;和PC&#xff08;个人计算机&#xff09;上的源代码是否相同&#xff0c;我们可以从以下几个方面来详细分析和总结&#xff1a; 核心源代码&#xff1a; FreeRTOS的核心源代码&#xff08;如tasks.c和list.c等&#xff09;在…

IND83081芯片介绍(二)

七、典型应用 上面显示了独立的CAN收发器&#xff0c;而下面则显示了多个iND83081可以共享同一个CAN收发器的应用场景。通过这些连接&#xff0c;iND83081可以实现对多个LED的驱动和控制&#xff0c;同时与外部MCU进行通信 。 八、ELINS接口 1.ELINS简介 ELINS是一种从接口&a…

resume不严格加载model、避免某些层维度不一致导致错误

默认的&#xff0c;我们最常用的resume方式&#xff1a; if args.resume:checkpoint torch.load(resume_path, map_locationcpu)model_without_ddp.load_state_dict(checkpoint[model])print("Resume checkpoint %s" % resume_path)if optimizer in checkpoint and…

Oracle 19C19.3 rac安装并RU升级到19.14

19C支持RU补丁安装。 下载好19.14的RU补丁 [rootrac1 soft]# ll total 9830404 -rw-r--r-- 1 grid oinstall 3059705302 Jun 18 15:26 LINUX.X64_193000_db_home.zip -rw-r--r-- 1 grid oinstall 2889184573 Jun 18 15:27 LINUX.X64_193000_grid_home.zip -rw-r--r-- 1 grid …

C语言—文件IO相关操作

注&#xff1a;若有需要请查看官方文档&#xff1a;头文件#include<stdio.h> 注&#xff1a;要想学会&#xff0c;自己的练几遍&#xff0c;并且详细查看官方文档&#xff1b;一通百通&#xff1b; 1.fopen()函数 FILE * fopen ( const char * filename, const char * …