自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 数据库-索引

在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优点:提高数据检索效率,降低数据排序成本,占用空间,更新表同时更新索引,效率降低。也就是空间换时间的思想。由于日常业务中,

2023-09-19 20:23:24 176

原创 云计算知识

云计算是一种模型,它可以实现随时随地、便捷的、随需应变的从可配置计算资源共享池中获取所需的资源(如:网络、服务器、存储、应用、服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。通俗的理解:如果我们想要做一个自己的网站,传统的方式下,我们需要自己学习Web三件套:Html、Css、Javascript。还需要学习数据库MySql的代码编写,需要自己搭建好网站运行的服务器,想要被公网访问,我们还需要注册域名,DNS解析,网站备案等一系列的操作。

2023-09-19 15:38:42 434

原创 Linux chown命令

将hello.txt所属用户修改为root,所属用户组修改为itheima。使用chmod命令,可以修改文件、文件夹的所属用户和用户组。将test文件夹及下属所有文件所属用户修改为root。将hello.txt所属用户组修改为root。将hello.txt所属用户修改为root。语法: change owner。

2023-08-11 16:23:04 1395

原创 Linux chmod修改权限信息

将hello.txt的权限修改为751。7(111) 5(101) 1(001) 翻译过来就是 rwxr-x--x。示例:将hjtalent下的chmod_test文件权限修改为rwxr-x--x。意为:将test文件及文件夹内全部内容权限修改为 rwxr-x--x。注意:只有文件、文件夹的所属用户或者root用户才可以修改。可以使用chmod命令,修改文件、文件夹的权限信息。其中,u为user g为group o为other。意为:将文件权限修改为 rwxr-x--x。除此之外,还有快捷写法。

2023-08-11 16:13:10 352

原创 Linux 查看权限控制信息

通过ls -l 可以以列表形式查看内容,并显示权限细节。

2023-08-11 15:10:15 143

原创 Linux用户和权限

无论是windows、MacOS、Linux均采用多用户的管理模式进行权限管理。例如: 普通用户使用mkdir命令只能在HOME目录下创建文件。

2023-08-11 14:45:46 64

原创 Linux echo tail重定向符

可以使用echo命令在命令行内输出指定内容语法: echo 输出的内容。

2023-08-10 19:46:45 317

原创 Linux grep、wc和管道符

可以通过grep命令,从文件中通过关键字过滤文件行语法 grep [-n] 关键字 文件路径。

2023-08-10 17:47:00 485

原创 Linux 查找命令 which find

前面提到的linux。和windows中的.exe文件是一个意思。我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。语法: which 要查找的命令--

2023-08-10 16:43:15 328

原创 Linux cp mv rm命令

cp命令可以用来复制文件/文件夹,来自英文单词 copy。

2023-08-10 16:23:32 156

原创 Linux touch cat more命令

可以通过touch命令创建文件(区别于mkir。mkdir是创建目录,而不是具体的文件)语法: touch Linux路径。

2023-08-10 15:40:00 51

原创 Linux mkdir命令

通过mkdir命令可以创建新的目录(文件夹)mkdir来自英文:aeectory语法: mkdir [-p] Linux路径。

2023-08-10 15:18:24 789

原创 Linux 相对路径、绝对路径和特殊路径符

已知当前所处工作目录为/home/hjtalent。现在想要进入当前目录下的Desktop文件中,应该如何书写cd命令?

2023-08-10 15:01:39 262

原创 Linux cd, pwd命令

用户可以通过cd命令,更改当前所在的工作目录。hangeirectory语法:cd [Linux路径]

2023-08-10 14:44:52 527

原创 Linux-ls命令

其中,以.开头的表示的是Linux系统的隐藏文件/文件夹。只有通过-a 选项,才能看到这些隐藏的文件/文件夹。示例:ls -a /示例: ls -l /示例: ls -lh /意为列出根目录路径下的文件内容。

2023-08-09 20:26:59 82

原创 Day15:剑指 Offer 34. 二叉树中和为某一值的路径(中等)

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22。路径记录:判断当前节点的值与之前路径之和是否等于targetSum且当前节点为叶子结点。输入:root = [1,2,3], targetSum = 5。输出:[[5,4,11,2],[5,8,4,5]]叶子节点 是指没有子节点的节点。

2023-03-15 14:58:24 98

原创 Day15:剑指 Offer 54. 二叉搜索树的第k大节点(简单)

让我们看一下中序遍历的过程:左子树,根节点,右子树。这样得到的是升序排列。那么我们反过来,先右子树,根节点,再左子树。这样第k个访问到的是不是就是题目要求的?可以看到方法一的空间复杂度为O(N),有没有一种方法能够在不借助辅助空间的前提下,找到第k大的元素值呢?给定一棵二叉搜索树,请找出其中第 k 大的节点的值。题目给到的是二叉搜索树。1 ≤ k ≤ 二叉搜索树元素个数。左子树

2023-03-15 14:36:19 55

原创 Day15:剑指 Offer 36. 二叉搜索树与双向链表(中等)

1.循环链表的构建:调用完dfs后,已经得到了一个有序的双向链表。此时的pre指向的是链表的最尾部。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。在链表的连接中,要考虑node->left=pre和pre->right=node。当pre不为空时,修改双向节点引用:cur->left=pre,pre->right=cur。

2023-03-15 14:15:35 161

原创 每日一题:1615. 最大网络秩(中等)

根据题意,两个城市之间的网络秩为各城市相连道路之和,如果两城市相邻,相邻道路只能计算一次。我们可以将城市i相连的道路记为度数 degree(i)。n 座城市和一些连接这些城市的道路 roads 共同组成一个基础设施网络。两座不同城市构成的 城市对 的 网络秩 定义为:与这两座城市 直接 相连的道路总数。两城市有公共道路 rank(i,j)=degree(i)+degree(j)-1。整个基础设施网络的 最大网络秩 是所有不同城市对中的 最大网络秩。枚举两两城市之间的网络秩并找到最大网络秩即可。

2023-03-15 13:32:11 79

原创 刷题笔记 leetcode 69.x的平方根(简单)

m>x 我们就将m减一;m * m

2023-03-14 15:45:39 68

原创 刷题笔记 leetcode 34.在排序数组中查找元素的第一个和最后一个位置(中等)

和普通的二分查找相比,本题要求我们找到相同元素出现的第一个和最后一个位置,也就是说数组中有重复元素,因此不能用普通的二分查找来解决。请你找出给定目标值在数组中的开始位置和结束位置。target出现在数组之间,但数组中并不存在target。如[1,3,5]查找2,这时也应该返回[-1,-1]target出现在数组之间,且数组中存在target。如[1,3,5]查找3,这时返回[1,1]。如[1,3,5]查找6,这时应该返回[-1,-1]。如果数组中不存在目标值 target,返回 [-1, -1]。

2023-03-14 15:38:44 70

原创 刷题笔记 leetcode 35.搜索插入位置(简单)

本题相比于704.二分查找 只多了一个要求:如果搜索目标不在数组中,则需要返回应该插入的位置,如示例三所示。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。请必须使用时间复杂度为 O(log n) 的算法。nums 为 无重复元素 的 升序 排列数组。来源:力扣(LeetCode)时间复杂度:O(logn),最后返回left即可。空间复杂度: O(1)

2023-03-14 15:35:49 59

原创 刷题笔记 leetcode 704.二分查找(简单)

if(nums[mid]>target) right取值为mid 因为当前nums[mid]>target 去左侧区间继续循环,而左侧区间为左闭右开区间,所以right更新为mid 即下一个查询区间不会查询nums[mid]。,因为此时右区间是闭合的,所以target必不可能等于nums[right],下一个要考虑到右边界值为mid-1。实际上,根据大部分人的代码习惯,左闭右闭的查找方法是最多的,也是最贴合下标的。right)要使用

2023-03-14 15:31:07 42

原创 刷题笔记 leetcode 189.轮转数组(中等)

数组长度为1~10^5^ ,需要轮转的位数k也为1~10^5^。首先我们能够想到最简单解题方法就是另外开辟出等长的数组,将旧数组后k位放至新数组的前k位,再将旧数组的前n-k位放至新数组的后n-k位,最后将新数组复制给旧数组即可实现题目要求。先看提示,这是做题的好习惯。如上图 我们要对[1,2,3,4,5,6]的数组向右乱转k=3位。将整个数组[0,n-1]整体反转为[6,5,4,3,2,1]将[0,k-1]部分翻转 为[4,5,6,3,2,1]将[k,n-1]部分反转为[4,5,6,1,2,3]

2023-03-14 15:23:29 211

原创 刷题笔记 leetcode 724.寻找中心坐标(简单)

需要考虑一种特别情况,也就是题目中说到的中心坐标在0号位置,这时num=0(因为左侧没有元素) 也就是numi=total。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。,当前元素值为numi,假设该位置为中心坐标元素,则右侧元素之和也为num,有等式:左+当前+右=total。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。求出来,当我们遍历到数组的某个位置i时,其左边的元素和为。时间复杂度:一次遍历即可找到中心坐标,O(N)

2023-03-14 15:14:42 151

原创 刷题笔记 leetcode 66.加一(简单)

看完题目的瞬间便想到,能不能将数组转为string型,再将其转为int类型 加一之后再转回数组。但是实践之后发现数组有可能10000位 这样的话无论是int还是double或者是long long都无法装下这么大的数字,因此还是回到数组的角度来解决这个问题。全为9 如9999,此时需要开辟一个新的,长度比当前数组大一的数组 再将首位置1,其余位置0。给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。著作权归领扣网络所有。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

2023-03-14 15:08:12 48

原创 Day4:剑指 Offer 03. 数组中重复的数字(简单)

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。要想在不开辟额外的内存空间情况下,实现题目要求,我们可以先对数组进行一个排序(题目没说不能改变原数组),之后遍历排序数组,遇到重复元素则返回即可。此时,数组下标为0的元素为1,而数组下标为1的元素为3。由于题目说,存在多个重复元素,只需找到任意一个,我们的这种方法找到的是。数组下标为0的元素为2 而数组下标为2的元素为1。

2023-03-14 15:00:31 126

原创 Day14:面试题13. 机器人的运动范围(中等)

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1]。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。通过递归,先朝一个方向搜到底,再回溯至上一个节点,沿另一个方向搜索,以此类推。递归参数:当前元素在矩阵中的行列索引 i, j,行列数 m,n 访问数组visited。时间复杂度:O(MN)

2023-03-14 11:17:35 87

原创 Day14:剑指 Offer 12. 矩阵中的路径(中等)

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。因此在搜索过程中,遇到这条路已经不可能与字符串匹配成功的情况时,应该立即返回,也叫。时间复杂度:最差情况下,需要递归遍历所有矩阵元素所有方向的方案,所有元素O(MN);例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。通过递归,先朝一个方向搜到底,再回溯至上一个节点,沿另一个方向搜索,以此类推。),为什么是3,四个方向,不用遍历来时的方向。(当前矩阵元素与字符串元素不同)

2023-03-14 10:46:42 107

原创 Day3:剑指 Offer 58 - II. 左旋转字符串(简单)

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。而字符串反转的代码大家应该都很熟悉,我就一次性贴出所有代码了。将整个s反转: s="cdefgab" 得到输出。将s进行三次反转,效果与左旋字符串一样。将0到k-1进行反转: s="bacdefg"将k到串尾反转: s="bagfedc"时间复杂度:O(2N)=O(N)空间复杂度: O(1)时间复杂度:O(N)空间复杂度:O(N)

2023-03-13 15:57:55 90

原创 Day3:剑指 Offer 05. 替换空格(简单)

首先容易想到的是,我们新建一个空字符串,再遍历s,遇到非空格,就将原值加到空字符串尾部;遇到空格,则将%20加到尾部。从后向前,对数组进行填充,将空格替换为%20。因为从前往后移动元素的时间复杂度为。可不可以原地对旧数组就行修改,使得达到题目要求呢,当然是可以的。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。时间复杂度:一次数组遍历达到要求,O(N),s需要扩充的长度为count*2。空间复杂度:借助辅助数组 O(N)统计s中空格出现的次数count。时间复杂度:O(N)空间复杂度:O(1)

2023-03-13 15:43:32 122

原创 Day2:剑指Offer35:复杂链表的复制(中等)

我们只需要新建一个链表点,每个新节点的val=旧节点val,新节点->next=旧节点->next就可以了。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。比如:现在我们要对节点值为13的新节点(红色)的random后缀进行连接。节点复制:在每个节点的后面复制一个值完全一模一样的节点copyNode。这样一来,复制节点13的random就连接到了值为7的复制节点上(虚线)断链:将新节点与旧节点进行断链:这里要格外细心。

2023-03-13 15:26:56 63

原创 Day2:剑指 Offer 24. 反转链表(简单)

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。0

2023-03-13 15:09:09 110

原创 Day2:剑指 Offer 06. 从尾到头打印链表(简单)

因为单链表是单向的,所以链表的反向遍历是链表中经常遇到的问题。要想从尾到头的返回每个节点的值,我们可以借助栈的。的性质,在顺序遍历链表的同时,将链表值进行入栈操作,遍历完成后,将栈中元素进行出栈,即可实现题目要求。在不借助外部空间的情况下,我们可以将整个链表进行翻转,最后对链表进行一次遍历即可完成要求。时间复杂度:第一次遍历链表进行翻转,第二次遍历翻转后的链表,O(N)空间复杂度:没有开辟要求的数组以外的空间,O(1)时间复杂度:一次遍历链表,一次出栈操作。空间复杂度:另外开辟了一个辅助栈,O(N)

2023-03-13 14:50:11 115

原创 Day1:剑指 Offer 30. 包含min函数的栈(简单)

如果题目没有提到对时间复杂度的O(1) 限制,那么直接维护一个最小值即可 每次入栈或者出栈则对最小值进行更新。但是在考虑到O(1)级别的时间复杂度以后,首先应该想到的解题思路是。,因此,每一次入栈操作都应该先取出辅助栈内的栈顶元素进行比较,始终保持栈顶元素为栈内最小值。初始化辅助栈时,可以将栈顶元素设置为INT_MAX,或者直接为第一个入队的元素。定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的。空间复杂度: 辅助栈中有n个元素。

2023-03-08 18:17:16 113

原创 Day 1:剑指Offer 09 用两个栈实现队列(简单)

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )来源:力扣(LeetCode)著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。提示:最多会对进行10000次调用。

2023-03-08 17:04:29 66

原创 leetcode 每日一题 553.最优除法

题目描述给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。示例:输入: [1000,100,10,2]输出: "1000/(100/10/2)"解释:1000/(100/10/2) = 1000/((100/10)/2) = 200但是,以下加粗的括号 "

2022-02-27 13:16:29 154

原创 力扣leetcode 面试题01.01. 判定字符是否唯一

题目描述:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = "leetcode"输出: false示例 2:输入: s = "abc"输出: true限制:0 <= len(s) <= 100如果你不使用额外的数据结构,会很加分。解题思路1.暴力法 时间换空间看到题目第一想法便是使用二重循环来判断是否存在重复元素,外循环i记录当前位置,内循环j查看i右侧元素astr[j]是否存在与astr[i]相同元素。若有重复,.

2022-02-26 19:33:39 420

原创 力扣leetcode 面试题02.01 移除重复节点

面试题02.01 移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2:输入:[1, 1, 1, 1, 2]输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。解题思路:1.哈希表,空间换时间注意到题目给的是未排序的链表,因此,需要考虑的情况也就更为复杂。首先想到的是使用一个哈希表来记录已出现的val值,...

2022-02-26 19:13:24 404

原创 nyoj,第56,阶乘因式分解(一)

#include int main(){ int s,n,m,sum; scanf("%d",&s); while(s--) { scanf("%d%d",&n,&m); sum=0; while(n) { sum+=n/m; //因为直接分析阶乘数字太大 会超出范围,所以可以拆 ,比如100中有因子5的有,5,10.。。100,20个,提出5后

2018-02-05 16:35:21 143

空空如也

空空如也

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

TA关注的人

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