随想录 矩阵 指针 螺旋

代码随想录 day18 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树

找树左下角的值 最简单就是想到层序遍历之后取第一个位置元素就是了 递归的话需要先判断哪里最深的节点 至于最左 保持中左右的遍历顺序 第一次得到最大深度处就是最左的 路径总和 有点像查找子树路径 所以递归回溯是比较好的选择 在求路径的适合,targetSum - node->val 是否为0的判断比一 ......
随想录 总和 序列 随想 路径

C++ --- 智能指针

一、智能指针存在的意义 智能指针主要解决以下问题: (1)内存泄漏:内存手动释放,使用智能指针可以自动释放。 (2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 C++里面有四个智能指针:auto_ptr、share_ptr、unique_ptr、weak_ptr。其中后三个是C ......
指针 智能

[代码随想录] 第四天

19.删除链表的倒数第N个节点https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ 思路:使用前后指针,当删除倒数第N个节点时,快慢指针之间应该间隔N个元素,当快指针到达链尾时,慢指针next指向所要删除节点。 时间复杂度:O( ......
随想录 随想 代码

矩阵乘法代码

void MatrixChain(int p[], int n, int **m, int **s) { for (int i = 1; i <= n; i++) m[i][i] = 0; // 初始化 for (int r = 2; r <= n; r++) { for (int i = 1; i ......
乘法 矩阵 代码

深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

C 语言简介 C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 学习变量、数据类型和运算符 C 中的变量和关键字 C 语言中的作用域规则 C 中的数据 ......
深入浅出 指针 变量 全方位 流程

【C语言】指针

指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元,按变量地址存取变量值的方式称为直接访问,如printf("%d",i);和scanf("%d",&i);;另一种存取变量值的方式称为间接访问,即将变量i的地址存放到另一个变量中,在C语言中,指针变量就是用 ......
指针 语言

代码随想录 day17 平衡二叉树 二叉树的所有路径 左叶子之和

平衡二叉树 之前一直写迭代代码 没有怎么写递归 正好这题不是很好写迭代 练习一下递归 这题递归逻辑相对简单 左右子树高度差判断是不是大于一 可以直接返回结果 不大于一就高度max(l,r)+1 二叉树的所有路径 关键要点 这题适合先序遍历 回溯过程和递归过程是一起写的 进来几次就回溯几次 这样才能回 ......
随想录 之和 随想 路径 叶子

快慢指针解决环形链表

可知首先要判断是否有环,然后给出目标的位置。 slow指针走一步,fast指针走两步。当这两个指针都进入环时,fast指针相当于slow指针只走了一步,因此肯定两者会相遇。 但这只是相遇点,不是环起始点,但根据计算可知,此时都以同样的单位速度时,再相遇时就可以得到相交点。 点击查看代码 class ......
快慢 环形 指针

吴师兄学算法day06 双指针 485. 最大连续 1 的个数

题目:485. 最大连续 1 的个数 易错点: 代码示例: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: cnt = 0 max_cnt = 0 for i in nums: if i == 1: ......
指针 师兄 算法 个数 day

吴师兄学算法day06 双指针 80. 合并两个有序数组

题目:80. 删除有序数组中的重复项 II 易错点: 为什么是slow-2? 因为有序 当slow -1 说明与上一个相等,当slow-2说明与上一个相等,并且上上一个也相等,就说明已经有3个相等的了。此时要跳过。 不相等说明要么是第一次出现,要么是第2次出现。出现新的,此时我记录一下 代码示例: ......
数组 指针 师兄 算法 两个

[代码随想录] 第二天

203.移除链表元素https://leetcode.cn/problems/remove-linked-list-elements/ 思路:没什么好说的 /** * Definition for singly-linked list. * public class ListNode { * int ......
随想录 随想 代码

指针的定义--应用场景

1 指针的本质 1.1-指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元。在C语言中,指针变量是一种特殊的变量,它用来存放变量地址。指针变量的定义格式如下:基类型 *指针变量名。 另外注意:指针变量加1后,偏移的长度是其基类型的长度,例如int *p; ......
指针 场景

吴师兄学算法day06 双指针 26. 删除有序数组中的重复项

题目:26. 删除有序数组中的重复项 易错点: 为什么不可以写大于nums[slow] 因为会出现多个[0,1,2,2,...]情况 代码示例: from typing import List class Solution: def removeDuplicates(self, nums: List ......
数组 指针 师兄 算法 day

吴师兄学算法day06 双指针 88. 合并两个有序数组

题目:88. 合并两个有序数组 易错点: 注意 判断i合法,不可以写if nums[i] 会下标越界 掌握好边界条件,num1[i] 和nums2[j]大于或者大于等于都可以。 代码示例: class Solution: def merge(self, nums1: List[int], m: in ......
数组 指针 师兄 算法 两个

代码随想录算法训练营第一天

Leetcode704 二分查找 https://leetcode.cn/problems/binary-search/submissions/494474207/ 文档讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6 ......
随想录 训练营 随想 算法 代码

[代码随想录] 第二天

977.有序数组的平方[https://leetcode.cn/problems/squares-of-a-sorted-array/] 思路:因为数组是非递减,数组有正有负,找到第一个非负数设为i,i将数组划分为前部分的负数组,后部分的非负数组,使用辅助数组将原数组平方部分存储,后部分使用正序存储 ......
随想录 随想 代码

7引用-右值引用-引用结合const和指针

引用 引用和指针的区别 引用是一种更安全的指针。 引用必须初始化,指针可以不初始化。引用初始化为另一个同类变量,特殊情况下可初始化为常量。 引用只有一级,没有多级引用。 从汇编指令层面看。对引用的处理,是采用指针的方法。因为引用是一种const指针。通过引用变量修改所引用内存的值,与通过指针解引用修 ......
指针 const

螺旋矩阵 59

一开始确实没有思路,一堆限制条件有点无从下手。 一圈一圈走,找到边界条件,左闭右开。 循环圈数就是N/2. 然后起始和结束位置也会变化。 奇数圈时要额外判断。 点击查看代码 class Solution { public: vector<vector<int>> generateMatrix(int ......
矩阵 螺旋 59

代码随想录 day16 N 叉树的最大深度 完全二叉树的节点个数

N 叉树的最大深度 这题昨天做过二叉版本 n叉区别不大 完全二叉树的节点个数 层级遍历 入que的数量就是节点个数 ......
随想录 节点 随想 个数 深度

数学基础(一)-标量、向量、矩阵、张量以及各范数的含义

1.标量、向量、矩阵、张量: ①标量指有大小没有方向的数。 ②向量指既有大小也有方向的一组数。 ③矩阵指二维的一组数,一行是一个对象,一列是一个对象的一个特征【一行一对象,一列一特征】。 ④张量指一个数组分布在多维网格坐标中。 2.向量的范数: ①向量的1范数(L1范数):向量的各元素绝对值之和。 ......
张量 标量 数学基础 向量 矩阵

滑动窗口(双指针的又一应用)

滑动窗口相当于双指针的变形,通过j指向末尾边界,这样遍历就只有O(n)的数量级,再通过i指针作为起始边界,while循环确定最短的长度。因为i j所框定的边界像窗口,所以叫滑动窗口。 用于解决的问题是最优区间的问题,记忆方法是右遍历,左判断,确定最佳区间。 还有一个技巧是可以用INT_MAX表示一个 ......
指针

双指针(1)

目录344反转字符串替换数字反转单词null 344反转字符串 我如果要反转,就是最前面和最后面的字符进行交换, //双指针的应用 class Solution { public: void reverseString(vector<char>& s) { int left=0,right=s.si ......
指针

数组指针

在数组指针中,*和[]的意义是相似的,都是优先降维数在降指针的级数 比如p是一个指向n维数组的一级指针,那么p[][][]就是一个指向n-3维数组的指针,打了n个中括号之后就变成了指向一个点的指针,此时再*一下就变成了了值(或者再括号一下) 如果p是一个指向n维数组的三级指针,那么打了n个中括号之后 ......
数组 指针

矩阵相关知识图谱

......
图谱 矩阵 知识

C语言 指针偏移量计算

#include <stdio.h> struct s { int a; int b; }; int main() { struct s s1; // (struct s*)0表示0x0作为struct s首地址 // &((struct s*)0)->a代表a地址 // 因为struct s首地址 ......
指针 语言

代码随想录 day15 十二题二叉树

二叉树的层序遍历 基本的层序遍历 二叉树的层序遍历 II 感觉直接正常遍历之后反转是最简单的想法了 二叉树的右视图 一开始很难想到 其实只需要返回每层的最后一个节点就可以了 也就是i == size - 1 二叉树的层平均值 比较简单 注意一下变量是double N 叉树的层序遍历 模板题 注意容器 ......
随想录 随想 代码 day 15

实现自定义算子:逆矩阵inverse

逆矩阵Cuda不支持,只能手动实现 import torch from torch.linalg import det def cof1(M,index): zs = M[:index[0]-1,:index[1]-1] ys = M[:index[0]-1,index[1]:] zx = M[in ......
算子 矩阵 inverse

指针的含义、表示、规范、存储、运用

# 指针的含义表示某个变量或数据所在的内存地址 注意是内存地址 不是内存地址上的数据# 指针的表示一般用指针运算符&和 *表示 其中符号&表示取地址运算符 符号*表示取地址上数据运算符 例如:&value 表示取变量value在内存中分配的地址 *value 表示取变量value在内存中所分配地址上 ......
指针 含义

二分查找法与双指针移动元素

这道题我用的是双指针法,left,right。通过while循环将目标元素全部放后面,left所代表下标就是剩余个数。但是最开始遇到了问题 点击查看代码 class Solution { public: int removeElement(vector<int>& nums, int val) { ......
指针 元素

《算法竞赛》---三指针

双指针(尺取法) 1.找出指定和的整数对 p37(书页) 哈希表 #include<bits/stdc++.h> using namespace std; int a[100010]; int main() { ios::sync_with_stdio(false);cin.tie();cout.t ......
指针 算法
共3000篇  :1/100页 首页上一页1下一页尾页