算法
文章平均质量分 97
RYE@
这个作者很懒,什么都没留下…
展开
-
代码随想录——二叉树的遍历方式
这里用链表来进行定义,二叉树的定义和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针,有两个指针,分别指向左右孩子。一棵树由根节点、左孩子、右孩子构成。根节点是一个结点,是int类型,左右孩子是TreeNode类型,即泛指左右子树。int val;// 根节点的值// 左子树// 右子树TreeNode(int val, TreeNode left, TreeNode right) { // 分别有根节点,左孩子、右孩子。原创 2024-08-23 17:50:44 · 998 阅读 · 0 评论 -
代码随想录——栈与队列
弹出元素时,比较当前要弹出的数值是否等于队列出口的数值,如果相等则弹出:因为如果不相等的话,就说明这个元素已经不在队列中了,所以就不用进行操作了。// 首先定义一个队列(自定义压入、弹出、取最大值)// 定义一个队列//弹出元素时,比较当前要弹出的数值是否等于队列出口的数值,如果相等则弹出if (!//添加元素时,如果要添加的元素大于入口处的元素,就将入口元素弹出,直到小于等于while (!// 大于队口元素,就移除队口元素,这里直接用函数实现// 然后再把当前元素压入队列。原创 2024-08-21 17:36:17 · 935 阅读 · 0 评论 -
代码随想录——数组
同样道理,更新的时候,因为right是没有包含的。所以在更新左边界的时候,因为左闭,又已经确定了middle不为目标值,所以left=middle+1。给定n,生成的矩阵就是n*n的,数字就是从1~n^2螺旋排列的。即二维数组的每一行头结点的地址是没有规则的(每一行内部是连续的,但是每一行随机存储)[ ) 所以while里面必须left原创 2024-07-17 22:52:56 · 650 阅读 · 0 评论 -
代码随想录——链表
定义:链表是一种通过指针串联在一起的线性结构(这里的指针只是一个概念,跟JAVA里面有没有指针无关)每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针)。有几种类型的链表:如下图。每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点既可以向前查询,也可以向后查询。顾名思义,就是链表首尾相连。public class ListNode { // 这个类有下面3个方法int val;// 结点的值。原创 2024-08-05 11:27:31 · 1739 阅读 · 0 评论 -
代码随想录——哈希表
遍历数组nums,每次遍历到nums[i]的时候,目标就是看target-nums[i]这个值是否在map中,如果在就是找到了,如果不在,就把nums[i]的值和下标存进map。比如nums=[1,0,-1,0,-2,2],target=0,返回 [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]简单来说,要是数值个数比较小,可控,就用数组。比如输入nums=[-1,0,1,2,-1,-4],输出[ [-1,-1,2] , [-1,0,1] ]原创 2024-08-09 18:41:16 · 752 阅读 · 0 评论 -
代码随想录——字符串
在思路上,其实字符串和数组是差不多的。但是具体是线上不同的编程语言实现起来字符串还是不太一样。原创 2024-08-15 11:32:14 · 1698 阅读 · 0 评论