指针leetcode
Leetcode 2982. 找出出现至少三次的最长特殊子字符串 II
开26个multiset,对于aabaaa,遍历,对第0个multiset push 1 2,然后对第一个multiset push 1,然后又对第0个multiset push 1 2,这时第0个multiset size超过3了,删除最小的元素,然后继续push 3,最后取 \(max_{i=1 ......
使用Cookie在VS Code中登录LeetCode插件
在VS Code的LeetCode插件中使用Cookie登录 1 在浏览器中打开leetcode网页并登录进去 2 按F12查看网页元素,找到graphql,查看其中的cookie,复制该cookie 3 在VS Code中点击登录leetcode的按钮,在登录方式中选择使用cookie登录,然后将 ......
C语言指针详解
一、指针的定义 指针是C语言的灵魂,数据结构的基础。 首先我们给出指针的官方定义:指针(英语:Pointer),是在许多编程语言中用来存储内存地址的变量。 简化一下,指针是变量,它是表示内存地址的。类比一下int,我们知道int表示的是整型,char表示的是字符型,那么指针就是表示的是内存型。 我们 ......
C指针的减法为什么不用除以类型大小
在 C 语言中,指针的减法操作实际上是计算两个指针之间的元素个数,而不是直接的字节偏移量。指针减法的结果的单位是指针类型所指对象的大小。对于 char 类型的指针,这个大小是1字节。 所以,表达式 result - haystack 的结果是两个指针之间相差的元素个数,而由于它们都是 char 类型 ......
C语言函数指针与指针函数
C语言函数指针与指针函数 简介: 函数指针与指针函数是两个不同的东西。 函数指针是指向一个函数的指针变量,该指针存储的是所指向函数的内存地址。函数指针可以被当做参数传递,也可以在C语言接口体中实现接口的功能,定义而不实现。 与函数指针相似的是一个名叫“指针函数”概念。指针函数是指返回值为指针的函数。 ......
leetcode 3.无重复字符的最长子串
leetcode 第三题:无重复字符的最长子串 自己写的: 第一想法:滑动窗口,用两个指针指向窗口的左右边界,用一个HashSet存储窗口内已有的值。另写一个find_first_temp方法用于出现重复字符时寻找新的左边界,左边界更新时也要更新set,将新左边界之前的元素删掉。 public in ......
leetcode 2.两数相加
leetcode 第二题:两数相加 以链表为载体模仿加法进位,同时遍历两个链表,逐位计算它们的和,并与当前位置的进位值相加。如果两个链表的长度不同,则可以认为长度短的链表的后面有若干个 0 。如果链表遍历结束后,有 carry>0,还需要在答案链表的后面附加一个节点,节点的值为 carry。 易错点 ......
leetcode 1.两数之和
leetcode 第一题:两数之和 1.暴力枚举: 最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使 ......
指针表示的总结(int *p、int **p、int (*p)()、int *p()、int *p[n]、int (*p)[n])
/* 指针也是变量,存储的是地址,直接使用和普通变量一样是引用方式使用,值是地址 */ int *p = a;//一级指针 p的值就是指向a变量的地址。*p就是取地址指向a变量的值,也相当于a变量的引用,与a等价。&p是指针的地址,*&p等价于p int **p = &p;//二级指针 int (* ......
const指针
#include <iostream> using namespace std; int main(){ // const 指针 int num = 1; int another = 2; // 这个指针指向的内容,不能透过这个指针来修改 // 可以理解为const int*, const int ......
指针与数组
数组名访问数组元素 a[i] 等价于 *(a + i) 数组名也是指针,但是是指针常量,指针操作赋值给普通指针 int i, *pa, a[] = {3,4,5,6,7,3,7,4,4,6}; pa = a; a++;//不可以 pa++;//可以 int i, a[] = {3,4,5,6,7,3 ......
Qt杂谈8.浅谈Qt智能指针那些事
1 引言 在 Qt 中,智能指针是一种能够自动管理对象生命周期的指针类型。通过使用智能指针,可以避免手动释放内存和处理悬挂指针等常见的内存管理问题。Qt中常用的智能指针主要有以下几种: QPointer:QPointer 是 Qt 提供的空安全的智能指针,用于解决对象悬挂指针的问题。QPointer ......
jdk 11.0.16.1版本 生成图片验证码会报空指针异常
异常堆栈信息 java.lang.NullPointerException: null at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at java.desktop/sun.awt. ......
leetcode 2706 购买两块巧克力
题目: 2706 购买两块巧克力 思路: 找两个最小值。 分情况讨论 代码 class Solution: def buyChoco(self, prices: List[int], money: int) -> int: # 遍历一遍,找2个最小值 # 找一个最小值我们都会。 # 找次小值,就分两 ......
在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01
#异或法#Kotlin ```Kotlinclass Solution { fun swapNumbers(numbers: IntArray): IntArray { numbers[0] = numbers[0] xor numbers[1] numbers[1] = numbers[1] xo ......
代码随想录day 02 双指针 滑动窗口 螺旋矩阵
有序数组的平方题目如下: 如果是可以使用O(nlogn)或以上复杂度的算法,本题可以简单的先平方一遍,然后使用排序算法就可以了 但是要求使用O(n)复杂度的算法,那么我首先想到的是昨天的快慢指针类似的想法: 我想先平方一次数组,然后从中间开始排序,如下 但是运行之后发现从中间开始进行相邻元素的比较好 ......
[LeetCode] 1578. Minimum Time to Make Rope Colorful
Alice has n balloons arranged on a rope. You are given a 0-indexed string colors where colors[i] is the color of the ith balloon. Alice wants the rope ......
[LeetCode Hot 100] LeetCode111. 二叉树的最小深度
题目描述 思路 二叉树的最小深度就是第一个叶子节点所在的层数 方法一:前序遍历(递归、dfs) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeN ......
[LeetCode Hot 100] LeetCode110. 平衡二叉树
题目描述 思路 LeetCode104. 二叉树的最大深度 变种 方法一:后序遍历(递归、dfs) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ......
[LeetCode Hot 100] LeetCode543. 二叉树的直径
题目描述 思路 所谓二叉树的直径,就是左右子树的最大深度之和。 方法一: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; ......
[LeetCode Hot 100] LeetCode104. 二叉树的最大深度
题目描述 思路 熟练掌握二叉树的遍历算法 方法一:层序遍历(迭代)+计数 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; ......
[LeetCode Hot 100] LeetCode102. 二叉树的层序遍历
题目描述 思路 方法一:递归 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * Tree ......
[LeetCode Hot 100] LeetCode144. 二叉树的前序遍历
题目描述 思路 熟练掌握迭代和递归的代码。 递归代码:额外写一个函数void preOrder(TreeNode node, List res) 迭代代码:会用到数据结构——栈。先入栈当前节点的右子节点,再入栈左子节点。 方法一:递归 /** * Definition for a binary tr ......
[LeetCode Hot 100] LeetCode94. 二叉树的中序遍历
题目描述 思路 熟练掌握迭代和递归的代码。 递归:额外写一个函数void inOrder(TreeNode node, List res) 迭代:令cur = root,一直往左子树找,找到最后一个左子节点,当cur为空,就开始处理栈顶元素(将栈顶元素加入结果集),随后将cur设置为右子节点,继续执 ......
[LeetCode Hot 100] LeetCode145. 二叉树的后序遍历
题目描述 思路 递归:额外写一个函数void postOrder(TreeNode node, List res) 迭代: 前序遍历:根 左 右 将前序遍历改造成:根 右 左 然后反转根右左为:左 右 根,即为后序遍历 优化一下: while (!stack.isEmpty()) { TreeNod ......
Leetcode每日一题
目录202312/2512/2612/27 2023 12月往前的应该就不会补题解了,大概有时间会往前一直补到12/1的题解 12/25 1276. 不浪费原料的汉堡制作方案 题目分析: 数学题,解二元一次方程即可 具体过程有$$\left { \begin{array}{c}4x+2y=tomat ......
【动态规划】leetcode 不同路径问题
题目名称:63. 不同路径 II 链接:https://leetcode.cn/problems/unique-paths-ii/description/ 题目内容: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器 ......
代码随想录day 01 二分法与快慢指针
二分法题目: 实现代码如下: 值得注意的是实现的方法是利用左闭右开区间还是左闭右闭区间 根据选择的不同,判断条件不同 将迭代的值带入到条件看符不符合区间要求就不会混淆二者 快慢指针题目: 本题实际上可以通过二重for循环暴力求解,复杂度是O(n^2) 但是测试过程中发现超时遂放弃 利用快慢指针在数组 ......
[LeetCode] 2660. Determine the Winner of a Bowling Game
You are given two 0-indexed integer arrays player1 and player2, that represent the number of pins that player 1 and player 2 hit in a bowling game, re ......
函数指针 int (*add)( )
原文 首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址; int Add(int x,int y) { return x+y; } int main() { printf("%p\n",&Add);//打印一下函数Add()的地址 printf("%p\n",Add);//数组名 ......