- 博客(32)
- 收藏
- 关注
原创 黑马Redis——黑马点评项目记录
这已经是我第三次看这个项目了,第一次看这个是七八个月以前,第二次看是三个月以前,现在为了简历内容,我打算第三次再回顾一遍这个项目,不得不说这个项目对我学习redis真的是很有帮助。
2023-03-24 22:48:40
4222
原创 Long类型的相等判断
今天做项目的时候一直跑不出想要的结果,最后才发现是一处判断语句出了问题。有两个Long类型的变量初始赋值都为10000,但用“==”来判断结果却是判断它们不相等。Long中有⼀个静态的内部类LongCache,专门⽤于缓存-128⾄127之间的值,⼀共256个元素。如果值在[-128, 127]之间,会放在缓存⾥⾯,此时用“==”可以判断两个变量相等。⽽超过这个范围就要new⼀个新的对象,也就是说"=="不能判断对象是否相等。 后来改成equals()来判断,最终才运行...
2022-05-26 20:30:50
5201
1
原创 VirtualBox的vmdk文件压缩
前段时间为了做谷粒商城跟着教学用VirtualBox和Vagrant安装了Linux系统,具体过程可看:VirtualBox+vagrant Linux系统安装_padDio的博客-CSDN博客 然后昨天突然发现电脑c盘将近少了几十个G的容量,不仅如此Linux虚拟机40个G的容量也全部都塞满了。检查后发现,用户目录下的VMDK文件直接涨到了36个G!!问题很明了,就是虚拟机莫名其妙地被塞了很多东西结果还把我c盘的空间也给占了。 然后经过各种倒腾,总算...
2022-05-19 13:35:30
3064
1
原创 VirtualBox+vagrant Linux系统安装
由于之前在VMware上安装的linux系统容量不足,且正好又要在网上学习新的项目开发,因此正好重新配置新的linux系统,这里使用VirtualBox+vagrant进行安装。一、软件安装没什么好说的,安装程序在官网很容易可以找到。vagrant安装完成后重启电脑,之后可以直接在控制台检查安装情况,执行vagrant命令,如下图则安装成功:二、使用步骤1.引入库代码如下(示例):import numpy as npimport p...
2022-05-12 01:08:43
476
1
原创 leetcode刷题 449序列化和反序列化二叉搜索树
序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化 二叉搜索树 。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。...
2022-05-11 13:38:52
912
原创 leetcode刷题 396旋转函数
给定一个长度为 n 的整数数组 A 。假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的“旋转函数” F 为:F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]。计算F(0), F(1), ..., F(n-1)中的最大值。解题思路: 对于一个长度为n的数组,F函数最多可计算到F(n-1),且计算每个F函数需要n个数相加。最简单的解题方法是将n个F函数依次计算比较得到答案,这样的时间复杂度为O(...
2021-11-28 18:58:26
348
原创 leetcode刷题 构建乘积数组
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。解题思路: 这里用到了一个数学思路:当n个数相加的和固定时(设目标和为target),要让这n个数的乘积最小,则必须让这n个数尽量接近。如:将9分成3...
2021-11-12 22:38:39
665
原创 leetcode刷题 413等差数列划分
如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。子数组 是数组中的一个连续序列。解题思路: 设置一个arr数组,其中arr[i]表示以nums[i]为结尾的等差数列子数组的总个数,假设nums=[1,2,3,4,6,7,8],则arr=[0,0,1,2,0,0,1...
2021-11-10 12:19:38
595
原创 leetcode刷题 22括号生成
数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。解题思路: 有效的括号组合实际上就是任意一个右括号左边都有一个左括号和它相匹配。可以想象成一个指针从下标为0的位置开始遍历数组,遇到左括号让变量left加1;遇到右括号让变量right加1,若中途出现right>left的情况,就代表这不是一个有效的括号组合。 结合以上想法,运用回溯方法,从左到右依次给目标字符串增加括...
2021-11-08 17:15:10
264
原创 leetcode刷题 范围求和II
给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。解题思路: 每当进行一次操作后,二维数组中就有一个矩形区域里所有的数值增加1。这个矩形的上下距离为[0,a-1]...
2021-11-07 13:41:42
137
原创 leetcode刷题 42接雨水
给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解题思路: 先取i号柱子和j号柱子(i<j)两根柱子,做以下假设: 1.i号柱子和j号柱子之间的柱子的高度均比它们两根要小。2.i号柱子左边的柱子均比i号柱子低,或者j号柱子右边的柱子均比j号柱子高。设min{i,j}表示的是i和j号柱子中较低的那根柱子的高度,那么任取i和j中间的某个位置k(i<k&...
2021-11-03 13:11:13
3249
原创 leetcode刷题 颜色分类75
题目描述:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。解题思路: 本题实际上就是对只有三个变量的数组进行排序,其中数字0尽量在数组最左边;数字1尽量在数组最右边。 这里设置三个指针,left,right,和index。left的含义是:在left左边的部分(不包括left)都是0...
2021-11-02 21:50:49
235
原创 leetcode刷题 区间列表的交集986
题目描述:给定两个由一些 闭区间 组成的列表,firstList 和 secondList ,其中 firstList[i] = [starti, endi] 而 secondList[j] = [startj, endj] 。每个区间列表都是成对 不相交 的,并且 已经排序 。返回这 两个区间列表的交集 。形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a <= x <= b 。两个闭区间的 交集 是一组实数,要么为空集,要么为闭区间。例如,[
2021-11-01 00:43:55
321
原创 leetcode刷题 33搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一
2021-10-29 16:20:49
136
原创 leetcode刷题 34在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。要求时间复杂度为O(log n)解题思路:由于需要时间复杂度 O(log n),因此很容易想到使用二分查找。但与一般的二分查找不同的是,二分查找一般在找到目标值后就立刻返回,但这里我们要查找的目标值的左右边界。因此在满足(target==nums[mid])后,不直接返回,而是继续往左或往右查找直到...
2021-10-29 14:48:19
119
原创 leetcode刷题 62不同路径
一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解题思路: 一开始时使用的是深度优先遍历,计算出到达每个格子的路径总数,但结果却是超时,因此换了种思路。 这题目与爬楼梯问题异曲同工,由于只能往右或往下走,因此若想到达map[i][j],则只能先到达map[i-1][j]然后向下走一步或是先...
2021-10-25 10:30:10
156
原创 leetcode刷题 638大礼包
在 LeetCode 商店中, 有 n 件在售的物品。每件物品都有对应的价格。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。给你一个整数数组 price 表示物品价格,其中 price[i] 是第 i 件物品的价格。另有一个整数数组 needs 表示购物清单,其中 needs[i] 是需要购买第 i 件物品的数量。还有一个数组 special 表示大礼包,special[i] 的长度为 n + 1 ,其中 special[i][j] 表示第 i 个大礼包中内含第 j 件物品的数量,且
2021-10-24 21:36:55
969
原创 leetcode刷题 98 验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。解题思路:本题可以直接使用二叉搜索树的特性,运用中序遍历时,二叉搜索树的节点值将会是一个严格递增的数列。因此,只需运用中序遍历便可以得出二叉搜索树是否有效。可以引入一个变量temp,它将保存上个节点的值,若此时遍历到的节点的值小于temp时,便代...
2021-10-23 20:10:24
160
原创 leetcode刷题 654最大二叉树
给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下: 二叉树的根是数组 nums 中的最大元素。 左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。 右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。返回有给定数组 nums 构建的 最大二叉树 。思路: 本题其实主要就是两个步骤: 1:找到数组nums的最大元素的下标maxPosition 2:创建根节点...
2021-10-19 20:30:26
222
原创 leetcode刷题 39组合总和
题目:给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。思路:这道题思路并不算难,将candidates 从新小到大排序,然后用多个指针同时遍历candidates。假设有n个指针,则先把n个指针都指向candidates[0]。若此时指针指向的数之和sum==target
2021-10-18 01:38:52
270
原创 leetcode刷题 904水果成篮
leetcode刷题系列在一排树中,第 i 棵树产生 fruits[i] 型的水果。可以从选择的任何树开始,然后重复执行以下步骤: 1.把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 2.移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。有两个篮子,每个篮子可以携带任何数量的水果,但每个篮子只能携带一种类型的水果。求解收集的水...
2021-10-13 15:59:12
414
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人