随笔分类 - 算法
摘要:void qsort(vector<int>& arr,int left,int right) { if (left >= right) return; int begin = left, end = right,pivot = arr[begin];; while(begin < end) { w
阅读全文
摘要:爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏
阅读全文
摘要:原题 给你链表的头节点 head 和一个整数 k 。 交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引)。 示例 1: 输入:head = [1,2,3,4,5], k = 2输出:[1,4,3,2,5]示例 2: 输入:head = [7,9,6,6
阅读全文
摘要:原题 1 class Solution: 2 def maxScore(self, s: str) -> int: 3 ans,lens = 0,len(s) 4 cnt0 = s.count('0') 5 cnt1 = lens - cnt0 6 cur0 = cur1 = 0 7 for i i
阅读全文
摘要:原题 1 class Solution: 2 def getRow(self, rowIndex: int) -> List[int]: 3 ans = [1] 4 for i in range(rowIndex): 5 # tmp = [1] 6 # for j in range(1,len(an
阅读全文
摘要:原题 解法1、2都是大佬写的,题解链接 1、回溯 1 class Solution: 2 def letterCombinations(self, digits: str) -> List[str]: 3 if not digits: return [] 4 5 phone = {'2':['a',
阅读全文
摘要:原题 1 class Solution: 2 def searchRange(self, nums: List[int], target: int) -> List[int]: 3 ans,lens = [-1,-1],len(nums) 4 left,right,flag = 0,lens - 1
阅读全文
摘要:原题 这题代码写得很烂 思路: 将flowerbed数组分段,记录区间端点是0是1,保证每个区间端点以外都是连续的0序列,最后对区间端点进行分类讨论 如flowerbed数组为[0,1,0,0,0,0,1] 则分段为: 【0,1】【1,0,0,0,0,1】 对应区间去除端点外所含0序列长度num分别
阅读全文
摘要:原题 1 class Solution: 2 def summaryRanges(self, nums: List[int]) -> List[str]: 3 left,right,lens,ans = 0,0,len(nums),[] 4 while left < lens: 5 right =
阅读全文
摘要:原题 以下是我的代码,就是简单的字符串操作,可以ac但背离了题意,我之前没接触过Trie 1 class Trie: 2 3 def __init__(self): 4 """ 5 Initialize your data structure here. 6 """ 7 self.trie = se
阅读全文
摘要:原题 1 class Solution: 2 def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]: 3 dic1,dic2 = {},{} 4 def helper(nums,dic): 5 for n in nu
阅读全文
摘要:原题 1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7
阅读全文
摘要:原题 1 class Solution: 2 def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': 3 if p.val < root.val and q.val <
阅读全文
摘要:原题 1 class Solution: 2 def lengthOfLongestSubstring(self, s: str) -> int: 3 ans = left = 0 4 dic = {} 5 for i,c in enumerate(s): 6 if c in dic: 7 left
阅读全文
摘要:原题 1 class Solution: 2 def pivotIndex(self, nums: List[int]) -> int: 3 s = sum(nums) 4 left = 0 5 for i,num in enumerate(nums): 6 if 2 * left == s - n
阅读全文
摘要:原题105 1 class Solution: 2 def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: 3 def helper(prebegin,preend,inbegin,inend): 4 if
阅读全文
摘要:原题 1 class Solution: 2 def reverseStr(self, s: str, k: int) -> str: 3 begin,lens,ans = 0,len(s),'' 4 while begin < lens: 5 mid = begin + k 6 if mid >=
阅读全文
摘要:原题 1 class Solution: 2 def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: 3 dic = {} 4 ans = [] 5 lens = len(nums2) 6 for
阅读全文
摘要:原题 1 class Solution: 2 ans = 0 3 def sumNumbers(self, root: TreeNode) -> int: 4 def dfs(root,n): 5 if not root:return 6 n *= 10 7 n += root.val 8 if n
阅读全文
摘要:原题 数组sort之后分类讨论 元素全正或全负,则最后的三个元素之积最大 部分为正部分为负,则要么最后三个元素之积最大,要么前两个元素与最后一个元素之积最大 如果nums[0]✖nums[1]>0,则不管nums[2]~nums[n-1]为正为负都是和最后一个元素之积最大 如果nums[0]✖num
阅读全文

浙公网安备 33010602011771号