随想录 矩阵 指针 螺旋
代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先
一、530.二叉搜索树的最小绝对差 题目链接: LeetCode 530.二叉搜索树的最小绝对差 学习前: 思路: 中序遍历(递归+迭代)。首先中序遍历,将数值按照递增的方式存储,然后再计算最小绝对差 学习后: 中序遍历+双指针。在中序遍历中,一直存在指针指向前序结点,故在遍历过程中就可计算最小绝对 ......
C语言指针详解
一、指针的定义 指针是C语言的灵魂,数据结构的基础。 首先我们给出指针的官方定义:指针(英语:Pointer),是在许多编程语言中用来存储内存地址的变量。 简化一下,指针是变量,它是表示内存地址的。类比一下int,我们知道int表示的是整型,char表示的是字符型,那么指针就是表示的是内存型。 我们 ......
混淆矩阵
混淆矩阵(Confusion Matrix)是在分类问题中常用的评估模型性能的工具,尤其是在机器学习和统计学领域。它提供了一个对模型的分类性能进行更详细分析的方式,特别是在多类别分类问题中。 混淆矩阵的基本结构如下: 实际类别 A 实际类别 B 实际类别 C ... 实际类别 N 预测类别 A Tr ......
C指针的减法为什么不用除以类型大小
在 C 语言中,指针的减法操作实际上是计算两个指针之间的元素个数,而不是直接的字节偏移量。指针减法的结果的单位是指针类型所指对象的大小。对于 char 类型的指针,这个大小是1字节。 所以,表达式 result - haystack 的结果是两个指针之间相差的元素个数,而由于它们都是 char 类型 ......
day06 代码随想录算法训练营 1. 两数之和
题目:1. 两数之和 我的感悟: 梦开始的地方 理解难点: map究竟是什么 存放已经遍历的元素值 什么时候需要用map? 遍历一边,这里面的元素值,后面都有可能要用就存起来。 代码难点: 掌握enumerate用法 [ɪ'njuːməreɪt] e + numer + ate 助记: e-出 + ......
day06 代码随想录算法训练营 202. 快乐数
题目:202. 快乐数 我的感悟: 2024年了,你快不快乐?找找自己的原因。 理解难点: 分离数组 快乐数字的定义, 不快乐的数字会无限循环 代码难点: divmod用法, set用法 总结概括: 快乐就完事了! 代码示例: class Solution: def isHappy(self, n: ......
day06 代码随想录算法训练营 349. 两个数组的交集
题目:349. 两个数组的交集 我的感悟: 轻轻松松 理解难点: python中 字典存,集合去重 代码难点: del要掌握 dic.get(i,0) +1 要掌握 总结概括: 无 代码示例: class Solution: def intersection(self, nums1: List[in ......
C语言函数指针与指针函数
C语言函数指针与指针函数 简介: 函数指针与指针函数是两个不同的东西。 函数指针是指向一个函数的指针变量,该指针存储的是所指向函数的内存地址。函数指针可以被当做参数传递,也可以在C语言接口体中实现接口的功能,定义而不实现。 与函数指针相似的是一个名叫“指针函数”概念。指针函数是指返回值为指针的函数。 ......
图基础之图的表示方法--邻接表和邻接矩阵
创建无向图的邻接表和邻接矩阵 ALGraph.h #pragma once #define MAXVEX 100 typedef char VertexType; //顶点类型 typedef int EdgeType; //边上的权值类型 struct EdgeNode //边表结点 { int ......
编程随想曲周刊(第61期)
这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 工具 astropad slate: free public beta OrbStack-Docker containers sing-box-代理工具 文章 我换手机了 陶勇塌房,早在一年之前就已注定 时政 官宣!苏州机场,有戏 ......
行列递增矩阵
240. 搜索二维矩阵 II TAG:二分 链接: https://leetcode.cn/problems/search-a-2d-matrix-ii/ class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, ......
day06 代码随想录算法训练营 242. 有效的字母异位词
题目:242. 有效的字母异位词 我的感悟: 卡尔的思路,挺好。简单易懂。 理解难点: 没有难点 总结概况: 建立数组存 遍历一遍 ++ 遍历一遍 -- 再遍历一遍 判断0 代码示例: class Solution: def isAnagram(self, s: str, t: str) -> bo ......
day04 代码随想录算法训练营 24. 两两交换链表中的节点
题目:24. 两两交换链表中的节点 我的感悟: 我感觉,python中对链表的概念,很弱。 链表在现在语言中,用的不多。 先搁置。 理解难点: 可以看懂代码。 总结概括: 代码示例: # Definition for singly-linked list. # class ListNode: # d ......
代码随想录算法训练营第二十天|654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树
一、654.最大二叉树 题目链接: LeetCode 654.最大二叉树 学习: 思路: 前序遍历 方法参数:(int[] nums, int start, int end) 返回类型:TreeNode 终止条件: if(end-start==0) return null; if(end-start ......
day03 代码随想录算法训练营 206. 反转链表
题目:206. 反转链表 我的感悟: 理解cur是什么? 相信自己!! 代码难点: cur = head 可以省略不 每一个步骤里的cur是什么 代码示例: # Definition for singly-linked list. # class ListNode: # def __init__(s ......
代码随想录 day06 有效的字母异位词 返回数组的交集 找快乐数 两数之和
有效的字母异位词: 思路比较简单 由于范围比较小 只有小写字母为范围 利用26大小的数组 遍历字符串 第一个串在对应下标++ 第二个++ 然后数据存在不为零就是不一样的 不存在则时字母异位词 返回数组的交集 由于要返回的是交集 就是查找两个集合出现的元素 想到要使用hash map 具体的数据结构而 ......
代码随想录算法训练营第14天 | lc104、lc111、lc222
(本合集全部为Go语言实现) 相关文章链接:104题解 111题解 222题解 相关视频链接: Leetcode104 状态:这种简便的写法一开始忘了,看了题解才想到 实现过程中的难点:需要首先明确最终答案的得出是模拟了那种遍历方式 个人写法 func maxDepth(root *TreeNode ......
代码随想录算法训练营第13天 | 树的层序遍历、lc226、lc101
(本合集全部为Go语言实现) 相关文章链接:层序遍历题解 226题解 101题解 相关视频链接: Leetcode102 状态:迭代写法秒了,递归写法确实吗,没太能想到 实现过程中的难点:递归写法中,思想要转变。迭代写法是真正的按层遍历,递归写法是以类似深度优先的方式将遍历结果放到不同的层级的集合当 ......
代码随想录 小结02 链表
第一题 移除链表元素 这题比较简单 使用dummyHead的方式会比较简单 不需要对头指针进行单独处理 但是空间开销会大一些 第二题 设计链表类 这个没什么好说的 感觉有可能一些细节会忘记 需要经常复习的一块 第三题 反转链表 这题难度不大 用一个tmp指针存储一下当前指针的next 然后直接反转就 ......
代码随想录算法训练营第十八天 | 513.找树左下角的值,112. 路径总和,113.路径总和ii,106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树
一、513.找树左下角的值 题目链接: LeetCode 513.找树左下角的值 学习前: 思路: 层序遍历。采用递归和迭代两种方式 递归:定义最大深度和目标值两个成员变量,方法参数是结点和当前结点的深度;返回类型为void;终止条件为结点为空;单次循环内容为判断该节点是否符合目标要求,且分别传入左 ......
代码随想录 小结01 数组
数组篇一共有五个题目 第一题二分查找 值得注意的是,要自己想好 区间的边界到底是写左闭右开 还是左闭右闭 根据边界不同 while的条件和左右指针的移动会有差别 目前我的习惯是写左闭右开 还是固定一下习惯比较好 第二题是实现数组类的erase() 使用快慢指针可以做到在数组原地进行指定元素的移除而不 ......
代码随想录算法训练营第12天 | 树的遍历
(本合集全部为Go语言实现) 相关文章链接:递归遍历 迭代遍历 统一迭代法 相关视频链接: Leetcode94 状态: 实现过程中的难点:迭代法的模拟过程比较难想 个人写法 递归方式 func inorderTraversal(root *TreeNode) []int { var res []i ......
day03 代码随想录算法训练营 203. 移除链表元素
题目: 203. 移除链表元素 我的感悟: 题目里的节点是已经给好的, 创建虚拟节点,是为了方便处理头节点。 加油,我可以的!!!!! 理解难点: 节点已经给好的 创建虚拟节点 代码难点: p是临时变量,类似于for i in range(10) 这里的i,本身是用完就扔的。 返回值为什么不能是p. ......
6-矩阵键盘
1.矩阵键盘原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态 数码管是输出扫描: 原理:显示第1位→显示第2位→显示第3位→……,然后快速循环这个过程,最终实现所有数码管同时显示的效果 矩阵键盘是输入扫描: 原理: ......
代码随想录算法训练营第11天 | lc239、lc347
(本合集全部为Go语言实现) 相关文章链接:239题解 347题解 相关视频链接: Leetcode239 状态:记得是单调队列,但实际忘了实现细节,想了很久 实现过程中的难点:首先是得想到用单调队列解题,其次要搞明白单调队列的入队和出队的实现细节 本题中单调队列的细节 为什么不是优先队列:优先队列 ......
代码随想录day04 两两交换链表中的节点 删除链表的倒数第N个节点 链表相交 环形链表
两两交换链表中的节点题目: 这题画一下链表会比较清晰 写写画画指针位置很快就可以写出来 一开始以为一个tmp就够用了 写着写着发现需要多一个 代码: 删除链表的倒数第N个节点: 没什么思路 只好先看看视频思路 视频思路很简单也很清晰 只需要两个指针 一快一慢 两指针的间隔就是n 这样当快指针到末尾的 ......
线性代数基础-矩阵奇异值分解-02
目录1. 引入2. 几何的角度理解SVD3. 空间的角度理解4 如何求解SVD5. SVD的应用 1. 引入 奇异值分解,singular value deconposition是6种矩阵分解方式中,综合性最强应用最广泛的分解技术,是PCA(主成分分析)的基础 六种矩阵分解技术: 只有矩阵为方阵(m ......
矩阵行列式
定义与形式 给定一个大小为 \(n\times n\) 的矩阵 \(A\),则行列式 \[\det(A)=|A|=\sum_{p} (-1)^{\pi(p)} \prod A_{i,p_i} \]其中的 \(p\) 是一个 \(1\sim n\) 的排列,\(\pi(p)\) 为排列 \(p\) 的 ......
Advanced Algebra高等代数 - 多元建模有多个方程(多元线性)组成 - 使用 NumPy 实现 矩阵的初等行变换:
线性:指多元变量的每一元变量都是1次方(可以将高于1次方的元,以新一元变量代换,求解再做开方运算) 将应用问题转化为 多个多元线性方程,并成一组; 由多元线性方程组 抽出 增广矩阵,并以“消元法”的策略,步步判断求解; 对 增广矩阵 的 多个 “方程” 应用“行消元法” 化简 成 阶梯矩阵;判断有无 ......