力扣刷题
文章平均质量分 58
刷题线:代码随想录
语言:JAVA
简介:尽量一题多解
ChenJieYaYa
这个作者很懒,什么都没留下…
展开
-
[力扣]回溯2
回溯法解决切割问题 回溯法解决子集问题 回溯法解决排列问题 回溯法解决棋盘问题代码随想录[原文指路]切割问题1.分割回文串[131]class Solution { List<List<String>> ress = new ArrayList<List<String>>(); List<String> res = new ArrayList<String>(); public List<..原创 2022-05-27 22:01:12 · 54 阅读 · 0 评论 -
[力扣]回溯1—基础+组合
回溯法解决组合问题代码随想录[原文指路]概述回溯函数也是递归函数1.回溯算法效率回溯法不是高效算法本质是穷举所有可能性2.回溯解决的问题组合问题:N个数里面按某规则找出k个数的集合切割问题:字符串按某规则有几种切割方式子集问题:N个数的集合里有多少符合条件的子集排列问题:N个数按某规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等3.回溯模板所有回溯问题可抽象成树回溯法一般是在集合中递归搜索集合大小构成树宽度,递归深度构成树深度模板public..原创 2022-05-14 11:26:15 · 71 阅读 · 0 评论 -
[力扣]二叉树5—总结
代码随想录[原文指路]原创 2022-05-10 23:03:21 · 267 阅读 · 0 评论 -
[力扣]二叉树4—二叉搜索树
代码随想录[原文指路]原创 2022-05-04 20:56:35 · 207 阅读 · 0 评论 -
[力扣]二叉树3—属性操作
代码随想录[原文指路]原创 2022-05-02 10:01:49 · 439 阅读 · 0 评论 -
[力扣]二叉树2—构造二叉树
代码随想录[原文指路]1.翻转二叉树[226]解题前先确定使用什么遍历顺序/** - 前后序,层序遍历都可,此处只给出前序遍历 - 中序不行,因为先左孩子交换孩子,再根交换孩子(做完后,右孩子已经变成了原来的左孩子),再右孩子交换孩子(此时其实是对原来的左孩子做交换) */class Solution { public TreeNode invertTree(TreeNode root) { if(root==null) return root;原创 2022-04-30 12:00:58 · 450 阅读 · 0 评论 -
[力扣]二叉树1—基础+遍历
代码随想录[原文指路]概述1.种类满二叉树:二叉树只有度(子节点个数)为0与2的节点,且度为0的节点在同一层完全二叉树:底层以上全被填满,底层节点从左向右连续(集中于左边)二叉搜索树(二叉排序树)满二叉树与完全二叉树没有数值的概念,而二叉搜索树有1.若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值2.若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值3.它的左、右子树也分别为二叉排序树平衡二叉搜索树(AVL):空树或左右两子树高度差绝对值不超过1,并且原创 2022-04-28 21:35:55 · 818 阅读 · 0 评论 -
[力扣]栈与队列
概述用栈实现队列[232]用队列实现栈[225]有效的括号[20]删除字符串中的所有相邻重复项[1047]逆波兰表达式求值[150]滑动窗口最大值[239]前 K 个高频元素[347]总结原创 2022-04-24 20:31:11 · 112 阅读 · 0 评论 -
[力扣]双指针
三数之和[15]四数之和[18]原创 2022-04-21 10:32:06 · 67 阅读 · 0 评论 -
[力扣]字符串
反转字符串[344]反转字符串 II[541]替换空格[剑指 Offer 05]颠倒字符串中的单词[151]左旋转字符串[剑指 Offer 58 - II]实现 strStr()[28]重复的子字符串[459]原创 2022-04-20 22:10:07 · 97 阅读 · 0 评论 -
[力扣]哈希表
概述1.概述哈希法牺牲空间换时间2.作用快速判断元素是否出现集合里判断元素是否出现过3.哈希函数通过hashCod计算某对象哈希值该哈希值作为该对象在哈希表中的索引以便快速找到该对象4.哈希碰撞两不同对象计算出的哈希值相同,即索引位置相同5.解决哈希碰撞拉链法线性探测法6.常见的哈希结构数组集合Map有效的字母异位词[242]已知为小写字母,定义一个26位大小的数组存对应字母出现次数循环s时用+,循环t时用-,最终元素全为0则返回tru原创 2022-04-18 15:34:59 · 81 阅读 · 0 评论 -
[力扣]链表
概述1.概念不一定连续存储空间以节点的方式存储每个节点包含data,next2.类型单链表(data,next)双链表(pre,data,next)循环链表(尾节点next指向head)3.存储方式存储空间不连续4.操作删除节点添加节点5.总结链表主要动笔画出链表间前后节点的关系只有最后一题需要数学思想,其他就基本操作移除链表元素[203]class Solution { public ListNode removeElements(Li原创 2022-04-17 20:33:25 · 102 阅读 · 0 评论 -
[力扣]数组
概述连续存储空间,存相同类型数据的集合C++中二维数组地址是连续的二分查找1.二分查找[704]前提:数组元素有序且不重复时间复杂度:O(logn)注意left与right边界取值情况2.搜索插入位置[35]分析暴力解法时间复杂度:O(n)------------------------class Solution { public int searchInsert(int[] nums, int target) { for(int i=0原创 2022-04-05 19:14:19 · 166 阅读 · 0 评论 -
[力扣]刷题开始
线性结构1.线性结构概念1.有序数据与元素的集合2.数据与元素间存在一一对应的线性关系存储方式1.顺序存储:内存连续2.链式存储:内存不连续常见线性结构数据、链表、队列、栈2.非线性结构常见非线性结构多维数据、广义表、树、图时间复杂度概念:估算运行时间的函数O:一般情况运行时间的上界化简留最高词,去系数常见时间复杂度O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(原创 2022-04-01 16:36:36 · 105 阅读 · 0 评论