1.回溯算法框架套路回溯可以理解是暴力递归+剪枝,解决一个回溯问题,实际上就是一个决策树的遍历过程,大致需要分为以下三步路径:已作出的选择选择列表:即当前可以做的选择结束条件:即达到决策树底层,无法再做选择的条件pythonresult=defbacktrack(路径,选择列表):if满足结束条件:result.add(路径)returnfor选择in选择列表:做选择backtrack(路径,选择
1.有效的括号20.有效的括号(https://leetcode.cn/problems/validparentheses/)给定一个只包括'(',')','{','}','',''的字符串s,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。示例1:输入:s="()"输出:true示例2:输入:s="(){}"输出:true示例3:输入:
1.合并两个有序链表牛客(https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=295&fromPut=pc_wzcpa_labuladong_sf)力扣(https://leetcode.cn/problems/mergetwosortedlists/)将两个升序链表合并为一个新的升序链表并返回。新链表是通
1.heapq堆Python中只有最小堆
1.长度最小的子数组209.长度最小的子数组(https://leetcode.cn/problems/minimumsizesubarraysum/)难度中等1246收藏分享切换为英文接收动态反馈给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组numsl,numsl+1,...,numsr1,numsr,并返回其长度。如果不存在符合条
1.字符串1、字符串基础问题https://leetcodecn.com/problems/tolowercase/https://leetcodecn.com/problems/lengthoflastword/https://leetcodecn.com/problems/jewelsandstones/https://leetcodecn.com/problems/firstuniquech
1.单词接龙单词接龙的规则是:可用于接龙的单词首字母必须要前一个单词的尾字母相同;当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,请输出最长的单词串,单词串是单词拼接而成,中间没有空格。输入描述:输入的第一行为一个非负整数,表示起始单词在数组中
1.BFS算法框架BFS:用来搜索最短路径比较合适,如:求二叉树最小深度、最少步数、最少交换次数,一般与队列搭配使用,空间复杂度比DFS大很多DFS:适合搜索全部的解,如:寻找最短距离,一般与栈搭配使用pythondefBFS(start,target):"""计算从start到target的最近距离"""q=队列,先进先出visited={}避免走回头路q.append(start)将起点加入队
1.相向双指针Reverse型:翻转字符串、判断回文串TwoSum型:两数之和、三数之和Partition型:快速排序、颜色排序框架pythondefisPalindrome(s):一左一右两个指针(索引),分别从中间开始移动left,right=0,len(s)1left一定要小于rightwhileleft<right:ifsleft!=sright:returnFalseleft+=1lef
1.斐波那契数列509.斐波那契数(https://leetcode.cn/problems/fibonaccinumber/)斐波那契数 (通常用 F(n)表示)形成的序列称为斐波那契数列。该数列由 0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1) =1F(n)=F(n1)+F(n2),其中n1给定 n,请计算F(n)。示例1:输入:n=2输出:1解释:F(2)=
1.找出数组最大公约数1979.找出数组的最大公约数(https://leetcode.cn/problems/findgreatestcommondivisorofarray/)给你一个整数数组nums,返回数组中最大数和最小数的最大公约数。两个数的最大公约数是能够被两个数整除的最大正整数。json示例1:输入:nums=2,5,6,9,10输出:2解释:nums中最小的数是2nums中最大的数
利用双指针(快慢、左右指针)解决数组问题
二叉树二种两边方式:深度优先遍历和广度优先遍历
单链表又称单向链表,顾名思义它只有一个方向。单链表每个节点包含两个域:信息域:又称元素域,存储数据用链接域:指向下一个节点地址,最后一个节点链接域指向None变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点!(https://s4.51cto.com/images/blog/202205/08231506_6277de7a85e8432377.png?xossprocess=i
1.算法刷经典题目200300道,题型分类,套路就是简单,多看、多写数据结构:数组、树、图、哈希算法排序、搜索迭代、DPDFS、BFS、UnionFindBigO、timevsspace1.1排序算法O(n^2):冒泡、选择、插入、希尔,必须掌握O(nlogn):归并、堆、快速,必须掌握O(n+k):计数、基数、桶1.2十大经典查找算法O(log2n):二分查找斐波那契查找二叉查找树红黑树B树/B
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号