• 2025-01-22代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素、977.有序数组的平方
    LeetCode7042025-01-2218:30:38星期三代码随想录视频内容简记梳理一下三个比较重要的部分首先是对于整个代码的循环条件,这个很重要判断middle位置在我看来初学也是比较重要一步注意:所有的middle位置判断都是if语句实现的,固定的大于和小于。这个不用纠结一不一样更
  • 2025-01-22二叉树的遍历(深度遍历)
    二叉树的遍历分为广度遍历和深度遍历。这里我们讲解一下深度遍历的代码如何书写。首先要明确深度遍历有三种遍历次序,分别是:前序遍历(中左右),中序遍历(左中右),后序遍历(左右中)。如何区别这几种遍历方式呢?关键在于单层递归时处理逻辑的位置,比如说先写处理逻辑,再写左递归和右递归
  • 2025-01-22二叉树的层次遍历(广度优先)
    所谓层次遍历,就是按层次从左往右遍历二叉树。但是一个节点的左子树和右子树之间是没有直接联系方式的。换句话说,当我们遍历了一个节点的左子树的根节点后,无法直接遍历该节点的右子树的根节点。这里我们可以借助一个数据结构,先按一定顺序将节点存放起来,再从该数据结构取出数据,最
  • 2025-01-22翻转二叉树(力扣226)
    写这道题之前需要熟悉二叉树的遍历,可以看我的这两篇文章:二叉树的遍历(深度遍历)-CSDN博客,二叉树的层次遍历(广度优先)-CSDN博客所谓翻转二叉树,就是将每一个节点的左孩子和右孩子交换(注意这里指的是指针交换,而不是交换节点的数值)。无非就是在遍历二叉树的基础上调用一下swap
  • 2025-01-22SM9 - 数字签名算法
    符号A,B:使用标识密码系统的两个用户。\(cf\):椭圆曲线阶相对于\(N\)的余因子。\(cid\):用一个字节表示的曲线的标识符,其中\(\mbox{0x10}\)表示\(F_p\)(素数\(P>2^{191}\))上常曲线(即非超奇异曲线),\(\mbox{0x11}\)表示\(F_p\)表示超奇异曲线,\(\mbox{0x12}\)表示\(F_p\)上常曲线及其扭
  • 2025-01-2234. 在排序数组中查找元素的第一个和最后一个位置
    给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。 示例1:输入:nums=[5,7,7,8,8,10],tar
  • 2025-01-21组合数学基础
    简单写写,如有不对请大佬指正。排列:符号:\(P_{m}^{n}\)或\(A_{m}^{n}\)意义:从\(m\)个物品中有序地取出\(n\)个公式:\(P_{m}^n=\frac{n!}{(n-m)!}\)组合:符号:\(C_{m}^{n}或\left(_{n}^{m}\right)\)意义:从\(m\)个物品中无序地取出\(n\)个公式:\(C_{m}
  • 2025-01-2133. 搜索旋转排序数组
    整数数组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处经
  • 2025-01-20二叉搜索树详解(看这一篇就够了)
    文章目录二叉搜索树实现树的节点树的结构插入中序遍历查找删除key的搜索场景key/value搜索场景搜索树存在的拷贝和析构的问题二叉搜索树特点:左子树都小于等于根,右子树都大于等于根完全二叉树:h=logN单分支的二叉树:h=N二插搜索树有两个版本,一个冗余的,一个
  • 2025-01-20三种二分查找写法(红蓝染色法理解)
    二分查找使用前提:有序数组用红蓝染色法理解二分查找数组中>=某个数的区间(闭区间写法)定义红色区间表示<target的区间,蓝色区间表示>=target的区间,[left,right]区间是还未确定的区间采用闭区间的写法,初始时闭区间范围为[0,n-1],即所有数都不确定,接着取中间下标mid,判断mid和ta
  • 2025-01-20剑指offer面试题3:数组中重复的数字(Python实现)
    """面试题3:数组中重复的数字在一个长度为n的数组里所有数字都在0~n-1的范围内,某些数字是重复的,找出任意一个重复的数字"""defduplicate1(numbers:list,length:int)->int:"""修改原数组"""ifnumbers==[]orlength<=0:
  • 2025-01-20SM9 - 密钥封装机制和公钥加密算法
    符号A,B:使用公钥密码系统的两个用户。\(cf\):椭圆曲线阶相对于\(N\)的余因子。\(cid\):用一个字节表示的曲线的标识符,其中\(\mbox{0x10}\)表示\(F_p\)(素数\(P>2^{191}\))上常曲线(即非超奇异曲线),\(\mbox{0x11}\)表示\(F_p\)表示超奇异曲线,\(\mbox{0x12}\)表示\(F_p\)上常曲线及其扭
  • 2025-01-20请用css写一个扫码的加载动画图
    创建一个简单的扫码加载动画可以使用CSS的关键帧动画。以下是一个简单的例子,模拟了一个线条从左到右的扫描效果:HTML:<divclass="scanner"><divclass="scan-line"></div></div>CSS:.scanner{width:200px;height:100px;border:1pxsolid#000;
  • 2025-01-20代码随想录——动态规划31打家劫舍III(树状DP)
    这道题目是打家劫舍III(HouseRobberIII),是打家劫舍系列问题的变种。问题描述如下:小偷发现了一个新的区域,这个区域的所有房屋排列类似于一棵二叉树。如果两个直接相连的房屋在同一晚被打劫,房屋会自动报警。给定这棵二叉树的根节点root,求在不触发警报的情况下,小偷能够盗取的最
  • 2025-01-19算法随笔_12:最短无序子数组
    上一篇: 算法随笔_11:字符串的排列-CSDN博客题目描述如下:给你一个整数数组nums,你需要找出一个连续子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的最短子数组,并输出它的长度。示例1:输入:nums=[2,6,4,8,10,9,15]输出:5解释:
  • 2025-01-19代码随想录:二叉搜索时的插入
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*
  • 2025-01-19代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*
  • 2025-01-19代码随想录:修剪二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*
  • 2025-01-19代码随想录:删除二叉搜索树中的节点
    由于涉及到树的结构变化,用递归写比较简单,竟然一次跑通了/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(int
  • 2025-01-19代码随想录:把二叉搜索树转化为累加树
    相当于将数组从右到左遍历,下一个数加上一个数,二叉搜索树中序遍历(左中右)为顺序,右中左则为倒叙/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),rig
  • 2025-01-18python-leetcode-最小覆盖子串
    76.最小覆盖子串-力扣(LeetCode)classSolution:defminWindow(self,s:str,t:str)->str:ifnotsornott:return""need={}forcint:need[c]=need.get(c,0)+1windo
  • 2025-01-18用Shell检查iOS字符串文件通配符
    #!/bin/shrow_number=0cat$1|whilereadrowdoletrow_number+=1running_output="${row_number}:${row}"printf"\r%-80s""${running_output:0:80}"#echo$row#row_number=`echo$row|awk'{printNR}�
  • 2025-01-18列空间和零空间 Column Space & Nullspace
    列空间和零空间ColumnSpace&Nullspace​ 在上一节的线性空间中,提到\(\symbf{R}^n\)子空间有过零点的平面和直线两种(3维及以上),可以分别记为\(\symbf{P}\)和\(\symbf{L}\)。​ 那么便有如下问题:\(\symbf{P}\cup\symbf{L}\)一定是向量空间吗?​ 答案是否定的,显然该空间对加
  • 2025-01-18分块莫队学习笔记
    优雅的暴力。引入link。这道题显然可以用线段树、树状数组做,但如果我偏不用这些数据结构呢?我们知道,暴力修改和查询最坏是\(\mathcal{O}(n)\)的,这样肯定会挂掉。那该怎么办呢?正题分块考虑将序列分成若干块,我们设每块长为\(B\)。对于每次查询\(\left[l,r\right]
  • 2025-01-18科普文:算法和数据结构系列【死磕字典树:字典树的升级版三叉树Ternary Search Tree优化】
    概叙科普文:算法和数据结构系列【死磕字典树:来一个英文字母游戏】-CSDN博客科普文:算法和数据结构系列【高效的字符串检索结构:字典树Trie树原理、应用及其java示例代码解读】-CSDN博客‌原理‌:Trie树利用字符串之间的公共前缀来减少不必要的字符串比较,从而提高查询效率。每个