自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 Leetcode 刷题第30天 | 51,37

具体可执行代码如下。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。如果当前board[i][j]是非数字,range(1, 10) 遍历,填空,此时要判断所填数字是否有效。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。当行和列都遍历结束,如果没有返回False,则返回True。如果遍历完10个数字,都是有冲突的,返回False。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。

2023-09-24 15:18:25 157

原创 Leetcode 刷题第29天 |491,46,47

输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]题目中要求的是返回所有的可能得情况,并且for循环似不能解决问题,所以采用回溯这种暴力搜索方法。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]本题可以有重复数字。输出:[[1,1,2], [1,2,1], [2,1,1]]

2023-09-21 11:40:09 176

原创 Leetcode 刷题第27天 | 78,90

肯定不是同一个位置上的2,那么这两个2分别是第一个位置上的2和第二个位置上的2,所以这样的情况是不重复的。首先要明确的是,本题与之前采用回溯算法的本质不同是,符合要求的答案在每个节点上,而之前的问题符合要求的答案在叶子节点上,这一点是明显的不同,但是总体思路和收集节点的方式是相同的。给你一个整数数组 nums ,数组中的元素 互不相同。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]

2023-09-19 19:38:45 152

原创 Leetcode 刷题第26天 | 131,93

例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。输出:[“1.0.10.23”,“1.0.102.3”,“10.1.0.23”,“10.10.2.3”,“101.0.2.3”]输出:[“255.255.11.135”,“255.255.111.35”]输出:[[“a”,“a”,“b”],[“aa”,“b”]]输入:s = “a”输出:[[“a”]]

2023-09-18 21:06:52 151

原创 Leetcode 刷题第25天 |40

与组合总和:解集中元素可重复,不限制元素个数。如果从1开始,那么必然要包含重复元素。给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。输入: candidates = [10,1,2,7,6,1,5], target = 8,输入: candidates = [2,5,2,1,2], target = 5,首先要明确本题与组合总和 和 组合总和3的差别。与组合总和3:解集中无重复元素,限制元素个数。

2023-09-18 07:57:07 97

原创 Leetcode 刷题第24天 |77,216,17

回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯是一种暴力搜索法,并不高效。虽然可以通过剪枝优化算法,但是并不能改变回溯算法的本质。为什么回溯算法并不高效,为什么还必须要使用呢?因为没得选,简单的for循环不足以解决问题,泛化性很弱。仔细想一下,在二叉树中,递归法解决问题,肯定都有回溯,只不过有时候回溯被隐藏起来了。所以,所有的回溯算法是不是都可以抽象成树形结构。只不过不一定是二叉树,可能是多叉树。

2023-09-16 11:29:48 87

原创 Leetcode 刷题第22天 | 235, 701

输入:root = [4,2,7,1,3,null,null,null,null,null,null], val = 5。输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8。输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4。例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]输入:root = [4,2,7,1,3], val = 5。

2023-09-14 22:39:39 79

原创 Leetcode 刷题第21天 |98,530,501

什么是二叉搜索树?简单说:根节点大于左子树上的任何值;小于右子树上的任何值。子树同样满足这样的定义。

2023-09-13 21:32:11 82

原创 Leetcode 刷题第18天 | 654,617,700

合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。递归结束条件:当当前数组没有元素时,说明遍历到空节点,返回None,当当前数组只有一个元素时,返回当前节点构成的二叉树。输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输出:[6,3,5,null,2,0,null,null,1]输入:nums = [3,2,1,6,0,5]输出:[3,4,5,5,4,null,7]

2023-09-09 19:46:19 89

原创 Leetcode 刷题第17天 | 513,112,106

第一,判断后序遍历是否为空(题目中给出postorder和inorder符合后序和中序的条件,因此不用过多的条件判断),如果为空,直接返回None,返回值哪里接?输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22。输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输入: [1,2,3,4,null,5,6,null,null,7]输入: root = [2,1,3]

2023-09-08 20:42:50 97

原创 Leetcode 刷题第16天 |257,404

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。输入: root = [3,9,20,null,null,15,7]给定二叉树的根节点 root ,返回所有左叶子之和。输入:root = [1,2,3,null,5]输出:[“1->2->5”,“1->3”]叶子节点 是指没有子节点的节点。输入: root = [1]输入:root = [1]

2023-09-07 21:13:47 106

原创 Leetcode 刷题第15天 |222,110

具体来说,递归遍历左子树的高度,递归遍历右子树的高度,作差,如果绝对值大于1,说明不是平衡二叉树,否则是平衡二叉树。但不同的地方在于,在求最大深度的题目中,每次的返回是当前节点的最大深度,而在本题中,返回值前要判断左右子树的高度差是否大于1,如果大于1,返回-1表示非平衡二叉树;思想:从题目中得知,输入数据会保证是完全二叉树,那么分别从左右两侧遍历到叶子结点,如果深度相同,那就是完全二叉树,否则继续递归到子节点,继续判断,以此类推。输入:root = [1,2,2,3,3,null,null,4,4]

2023-09-06 20:12:32 90

原创 Leetcode 刷题第14天 |226,101,104,111

经过思考可以知道,前序遍历和后序遍历都是在“边界”上访问根节点,访问根节点就是我们要处理的逻辑。这时要交换左右子树,交换后再遍历右子树,这时可以发现,有的子树被遍历两次,而有的子树却没有被遍历过。对于层次遍历,每次出栈节点都交换左右子树,交换完毕后再入栈左右孩子节点,这样并不会产生类似中序遍历的问题。首先要明确使用哪种遍历方式,前序遍历为“中左右”,后序遍历为“左右中”,中序遍历为“左中右”,层次遍历是逐层遍历。输入:root = [2,null,3,null,4,null,5,null,6]

2023-09-05 15:57:17 96

原创 Leetcode 刷题第13天 |144, 145, 94

对于二叉树,无疑是Leetcode 刷题最难的部分之一,对小编也是如此,从今天开始学习或复习二叉树。对于二叉树,我们要了解一下几个方面知识:一、二叉树种类二、 二叉树的存储方式三、 二叉树的遍历方式。

2023-09-04 17:12:03 141

原创 Leetcode 刷题第10天 |20, 150, 1047,239

利用栈,队列模拟解决Leetcode 问题

2023-09-01 15:41:45 95

原创 Leetcode 刷题第九天 | 225,232

你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你所使用的语言也许不支持队列。你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。使用python 双端队列deque模拟栈的行为,重要的是用一个双端队列模拟栈的行为。

2023-08-31 14:38:07 90

原创 Leetcode 刷题第七天 |344,541, 151

Leetcode 344.反转字符串,541.反转字符串II,151.翻转字符串里的单词Leetcode 344题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[

2023-08-29 16:00:23 157

原创 Leetcode 刷题第六天 |15,454,18

输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]输入:nums = [1,0,-1,0,-2,2], target = 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输出:[[-1,-1,2],[-1,0,1]]

2023-08-28 11:19:46 101

原创 Leetcode 刷题第五天 | 242,349,1

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]输入:nums1 = [1,2,2,1], nums2 = [2,2]输入: nums = [3,2,4], target = 6。

2023-08-27 15:33:16 128

原创 Leetcode 刷题第四天 | 24,19,142

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:python 代码:复杂度:时间复杂度:O(n)O(n)O(n),因为要循环遍历整个列表空间复杂度:O(1)O(1)O(1)给你一个链表,删除链表的倒数第 n 个结点,并且返回链表

2023-08-26 10:59:13 97

原创 Leetcode刷题第三天 | 203,707,206

给你一个链表的头节点 head 和一个整数val ,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]不带头指针实现:带头指针实现:复杂度:时间复杂度:O(n)O(n)O(n),因为要循环遍历整个列表空间

2023-08-25 17:17:28 105

原创 Leetcode刷题第二天 | Leetcode 977,209,59

使用条件:有序数组,查找操作。

2023-08-24 21:45:47 134

原创 Leetcode 刷题第一天 | Leetcode 704 二分查找和Leetcode 27 移除元素

示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。更简单的解法需要对数组进一步理解:数组在内存中是连续存在的,不能随意删除,只能覆盖。就是新数组中的元素的个数,最终会指向所有元素的下一个位置,也就是返回值就是新数组中元素的个数。

2023-08-23 16:39:36 199

原创 anaconda安装部分模块-以requests为例

文章目录前言 一、conda是什么? 二、使用步骤 总结前言随着新手对爬虫的学习,伴随着就会产生python第三方模块的安装,本文就以requests为例详细介绍了如何安装。提示:以下是本篇文章正文内容,下面案例可供参考一、conda是什么?Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。二、使用步骤1.windows左下角搜索框搜索Anaconda Prompt,如下图所示:2...

2021-05-21 16:41:18 10102 1

原创 IDEA用法之繁体字-简体字

问题:IDEA写Java代码注释部分突然变为繁体字?我在刚刚书写Java代码的过程中,本意是想通过快捷键找到全局搜索,但是聪明反被聪明误最后,在百度帮助下得到问题答案!也就是IDEA快捷键(CTRL + Shift + f)和搜狗输入法繁体-简体切换冲突(正在用)解决方案:1.在IDEA中在按一次(CTRL + Shift + f)2.修改搜狗输入法快捷键——取消即可...

2020-04-03 11:01:18 1502

原创 【号外,号外】Java中类、抽象类、接口,如何区分的方法来了?

类、抽象类、接口,如何更好的理解和区分呢?

2020-04-01 10:39:12 311

原创 父类引用—>子类对象?不明白不懂得看过来

父类引用指向子类对象,其实要从Java的多态说起了!那么,何为多态呢?多态:多态指的是同一个方法调用,由于对象不同可能会有不同的行为。举个例子来说:1.工作之余人都要休息,同样是调用人的“休息”方法,但不同的人有不同的休息方式。比如张三是睡觉,李四是旅游,王五是做数学题;2. 同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。现在差不多对多态有一点点了解了...

2020-03-31 20:13:26 330

Java面向对象知识汇总.xmind

本资源建议用Xmind打开,汇集了我学习JavaSE部分面向对象的总结,用了思维导图的方式。细节突出,重点突出,很适合新手参考学习,也适合新手总结自己的思维导图的参考。

2020-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除