自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 书生大模型实战营|python基础

完成一个计算text文本中单词数量的小程序。

2024-08-12 22:02:19 317

原创 书生大模型实战营|Linux基础前置

1. 在开发机上配置ssh key:在PC端利用RSA算法生成ssh 秘钥,将秘钥拷贝至开发机的ssh key配置页面。然后通过ssh 连接。复制当前登录命令,通过powershell与开发机连接。

2024-08-12 21:20:22 270

原创 代码随想录第22天|Leetcode77组合、Leetcode216 组合总和||、Leetcode17 电话号码的字母组合

今天进入新的算法模块:回溯算法。回溯一直隐藏在递归函数中,往往是一种暴力搜索,但比普通的for循环嵌套各个有效,更好地描述。回溯往往用森林来形象描述!!(代码随想录)

2024-08-07 21:49:33 406

原创 代码随想录第15天|Leetcode110 平衡二叉树、Leetcode257二叉树的所有路径、Leetcode404 左叶子之和、Leetcode222 完全二叉树的节点个数

判断一个数是否为平衡二叉树,则需要判断左右子树是否为平衡二叉树,并且左右子树的高度是否差别在1以内。这也决定了递归的顺序,不过有个trick,递归函数可以返回int,int可以表示左右子树高度,也可以表示左右子树是否为平衡二叉树。

2024-08-07 09:51:41 310

原创 代码随想录第14天|Leetcode226 翻转二叉树、Leetcode101 对称二叉树、Leetcode104 二叉树的最大深度、Leetcode111 二叉树的最小深度

采取后序遍历的递归,先处理左右子树高度,再取根节点高度,根节点度是二叉树的最大深度。递归的简单调用,要直接交换节点,而不是交换数值,这样子树跟着调换。递归法,我建议仍像104一样,不过这次取得是MIN值 + 1。会发现二叉树的遍历:深度优先、广度优先,对应递归、迭代。迭代和递归都ok,只要顺着统一的便利顺序就好。注意:最小深度在最近层次的叶节点那里达到。可以使用迭代,遇到叶节点就返回;

2024-08-07 09:36:09 420

原创 代码随想录第13天|二叉树的递归遍历、迭代遍历、统一遍历、层次遍历(广度遍历)

二叉树的遍历方式

2024-08-03 11:27:59 370

原创 代码随想录第11天| Leetcode150 逆波兰表达式、Leetcode239 滑动窗口的最大值、Leetcode347 前k个频率最高的元素

这次由于太急了,书写的风格及其不好,没有抽象剥离出单一操作,操作重复的太多了。基础题,按照套路进行就行。

2024-08-01 20:57:40 382 2

原创 代码随想录第10天|Leetcode232 用栈实现队列、Leetcode225 用队列实现栈、Leetcode20 有效的括号、Leetcode1047 删除重复相邻的两项

整体思路很简单,使用两个栈,一个是“进站”,一个是“出站”,二者合在一起可以实现“后进先出”变为“先进先出”。重点在于将入栈的元素拷至出栈时,要将全部元素拷贝,不然破坏顺序。

2024-08-01 20:44:36 396

原创 代码随想录第9天|Leetcode151 翻转字符串里的单词、卡码网55 右旋转字符串

2. 用来遍历,一般是涉及到同一个数组或字符串中的多元素的便利,减少不必要的冗余便利;4. 链表的翻转等操作也是可以使用双指针,这与数组、字符串的修改是一致的。翻转字符串一个一个处理比较困难,一般思路是整体翻转,然后再处理部分翻转。上面这两件事需要额外处理一下,注意代码中的removespace函数。去掉空格后,采取的措施是先将整个字符串反转,再依次翻转每一个字符。综上,双指针的有点在于效率高、节省空间,避免冗余。1. 删除数组、字符串元素,提高效率,节省空间;3. 用于链表中的环的判断以及环的寻找;

2024-08-01 10:30:34 310 1

原创 代码随想录第8天|Leetcode344 反转字符串、Leetcode541 反转字符串||、卡码网54 替换数字

今天进入了字符串模块!

2024-07-25 22:31:34 279

原创 代码随想录第7天|Leetcode454 四数相加|| 、Leetcode383 赎金信、Leetcode15 三数之和、Leetcode18 四数之和

一次遍历数组,i指向第一个元素,后面的两个元素用双指针指向,left指向i+1,right指向len-1,根据和与0的大小关系,决定left和right的移动。关于去重:nums【i】 == nums[i -1] && i >0 时,这个i必然是要跳过的,因为如果这个i可以的话,一定就在前一个元素就可以了;指针的去重,只需要考虑当left、right、i相加为0时,left右移时相同的就跳过,right同理。四组数值可以分成两两一组,哈希表不能做到算法上的减法,最多只能做到优势的遍历!

2024-07-25 21:20:24 360

原创 代码随想录第6天|Leetcode242 有效的字母异位词、Leetcode349 两个数组的交集、Leetcode202 快乐数、Leetcode01 两数之和

具体细节不多赘述,主要使用C++中的STL库,后续会跟进实现手搓STL库。

2024-07-24 10:42:17 288

原创 代码随想录第4天|Leetcode24 两两交换链表中节点、Leetcode19 删除链表的倒数第N个节点、面试题02.07 链表相交、Leetcode142 环形链表||

完成情况:AC 通过。

2024-07-23 09:37:23 442

原创 代码随想录第3天|Leetcode203 移除链表基础、707 设计链表、206 翻转链表

完成情况:AC通过。

2024-07-20 14:40:37 527

原创 【无标题】

数组题目首先观察数组的特点,其中偏序大小事最为重要的性质,本题中已给出非递减顺序,则要利用该性质。若都为正数,则平方后顺序不变;有负数情况下,则观察到两侧的数值的平方回避内侧的平方值大,如此则利用分治的思想来逐一比较两端的平方,并逐渐内移动。通过两天的习题可以发现:数组本身是简单的数据结构,其重要考察为二分法双指针滑动窗口模拟行为。重点在于思路清晰、编程进行状态清晰,掌握二分、双指针、滑动窗口三种方法。

2024-07-18 12:32:36 559

原创 代码随想录算法训练营第一天|Leetcode704 二分查找、Leetcode 27 删除元素

解题思路:通过分段查找减小时间复杂度,前提是数组本身是已经有次序。二分查找分为两种查找方式,一种是左闭右闭,一种是左闭右开;我个人习惯使用左闭右开。需要注意的就是while循环中是否边界可以取等和中right取middle还是middle-1以及如何重新赋值left和right。

2024-07-17 21:29:28 513

原创 算法训练营第8天|Leetcode344 反转字符串、Leetcode541 反转字符串二、Leetcode151反转字符串里的单词

以后会很忙碌了,博客只能贴个代码了,有空时在补思路吧。#Leetcode151反转字符串里的单词##Leetcode541 反转字符串二##Leetcode344 反转字符串#

2023-11-01 23:32:03 287

原创 代码随想录第7天|哈希表总结

2023-10-31 22:44:59 438 2

原创 代码随想录算法训练营第六天|Leetcode 242 有效的字母异位词、Leetcode 349 两个数组的交集、Leetcode 202 快乐数、Leetcode 1两数之和

总的思路就是将一个数组的值全存入一个set中,然后遍历另一个数组,每一个都去set中查找,若是查找的,就可以添加入结果set中,并且set是可以免重复的!题意: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。答案就是中间产生的sum后面又出现了,这必然会导致sum的值在几个值之间循环,不会为1。今天进行了新的板块,是哈希表,碰巧今天数据结构课程讲道理散列,也就是哈希表,很是巧合。#Leetcode 349两个数组的交集#

2023-10-30 16:52:12 274

原创 代码随想录算法训练营第五天|Leetcode24 两两交换节点、Leetcode19 删除倒数第N个节点、Leetcode02.07链表相交、Leetcode142 循环列表

为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。题意:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。首先一点:判断是否有环,即两个指针,一个快指针、一个慢指针,最后若相遇,则表示会有环,不相遇,则没有环;题意: 给定一个链表,返回链表开始入环的第一个节点。思路:注意一点,如果有相交节点,应该是后几个都相同,那么其实位置就不都是head了!

2023-10-29 21:52:17 611 1

原创 代码随想录算法训练营第三天|Leetcode 203链表删除元素、Leetcode707 设计链表、Leetcode 206 反转链表

本题出现的错误在于忘记先记录cur->next就将cur->next赋为pre!一个注意点:若是删除头结点,pre因暂时未NULL,则需要单独处理。本题是南大数据结构2023秋季课第一次竞赛第二题。本题我有个初始解法,挺麻烦的,暂未找时间升级。#Leetcode 707 设计链表#还有最后返回的是pre,不是head!#Leetcode 203 删除元素。#Leetcode 206 反转链表。关于螺旋数组,有个升级版,

2023-10-28 23:24:06 842 1

原创 代码随想录算法训练营第二天刷题记录|Leetcode 977 有序数组的平方、Leetcode 209长度最小的子数组、Leetcode 59螺旋矩阵

由于元数组是递增的,两端的符号可能不同,则仅需在两端方两个指针,分别计算平方,较大者放入目标数组,然后该指针向里移动,以此类推。这一题原始想法是找到中间符号的分界点,然后分成两块再使用类似双指针的方法,但比较麻烦,不如。本题还有变种,我在南大数据结构课堂竞赛中所遇到,比本题更为麻烦一点。明日将那一题和数组部分的总结一并写出来,太晚了,睡觉!j++)中的j是终止位置!即两个指针,分别移动,在里面去找到一个最小的符合题意的数组的长度。本题更考验基本功,在敲代码是要胆大心细!解题思路:本题仍是使用。

2023-10-26 23:48:22 1473 1

原创 代码随想录算法训练营第一天|Leetcode704 二分查找、Leetcode354、Leetcode 34、Leetcode 27 删除元素

本题的变体会是一些求解使用二分查找方法的其他问题,如Leetcode35和Leetcode34,一般来说最后结果可能会是其中某一步的middle或者是right的某一个关系式,这取决最后循环结束后结果与right是有怎样的位置关系。看完代码随想录视频讲解后,使用了双指针法,运用了块指针和慢指针,这样就可以记录已经遍历到的位置和不删除元素组成的数组的最后一个元素的位置,最后的时间复杂度为O(n).这个方法有一个小注意点,i不是每次循环都加1的,当遇到要删除元素时,i应该不变,防止要连续删除元素。

2023-10-25 15:38:27 1631 1

空空如也

空空如也

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

TA关注的人

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