赞
踩
LeetCode 是一个在线编程平台,它提供了大量的算法题目供用户练习。
TOP5题目通常指的是 LeetCode 网站上最受欢迎的前5道题目。
以下是 LeetCode TOP5 题目的列表以及它们常见的解题思路和代码示例。
两数之和 - 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
- 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. 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
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 = 0
- for end in range(len(s)):
- if s[end] in char_map and char_map[s[end]] >= start:
- start = char_map[s[end]] + 1
- char_map[s[end]] = end
- maxLength = max(maxLength, end - start + 1)
- return maxLength
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
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:
- def findMedianSortedArrays(nums1, nums2):
- nums1, nums2 = sorted(nums1 + nums2)
- return (nums1[len(nums1) // 2] + nums1[(len(nums1) - 1) // 2]) / 2
给你一个字符串 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] = True
- for 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 的这些功能使得它成为工程师和其他专业人士进行知识管理和个人生产力提升的有力工具。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。