链表总结链表的合并 虚拟头节点 拉拉链 1234567891011121314151617181920212223242526272829303132func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode { // 虚拟头结点 dummy := &ListNode{-1, nil} p := 2023-06-25 leetcode
数组双指针刷题总结双指针技巧分为快慢指针和左右指针 快慢指针 原地修改数组 遍历fast 去探路,探到符合条件的将其赋值给slow,并slow++ 去除有序数组/链表中去重 和上边类似,例如删除指定元素v: 遍历fast ,判断不符合该条件的(!=v),slow++; num[slow] == num[fast] 左右指针1.二分查找 * 有序,直接找中间的点 2023-06-22 leetcode
leetcode 1170. 比较字符串最小字母出现频次1170. 比较字符串最小字母出现频次 - 力扣(Leetcode) 后缀和(Prefix Sum)是一种常用于区间和计算的技巧。它通过预处理把一个数组的前缀和先计算出来,然后在查询某个区间的和时,只需要构造两个前缀和相减即可得到所求的区间和。 具体而言,假设有一个长度为 n 的整数数组 A,记 S[i] 为 A[0]+A[1]+…+A[i-1] 的前缀和,其中 0≤i<n。那么对于任何 0 2023-06-14 leetcode
什么是二进制的按位或和按位异或按位或(bitwise OR)和按位异或(bitwise XOR)是两种二进制位运算。但是这两个概念很容易忘记或者混淆,今天我们就来加深一下印象吧! 按位或运算符(|)对两个二进制数的每一位都执行逻辑或操作,返回一个新的二进制数。其真值表如下 123456input bit a | input bit b | output ------------------------------- 0 2023-06-08 Golang
leetcode 2460.对数组执行操作 2023.05.06每日一题2460. 对数组执行操作 - 力扣(Leetcode) 思路直接模拟 Code第一版时间复杂度:O(n)空间复杂度:O(n) 123456789101112131415161718192021func applyOperations(nums []int) []int { var res []int res = make([]int, len(nums)) index := 0 // 2023-06-05 leetcode
leetcode 28.找出字符串中第一个匹配项的下标28. 找出字符串中第一个匹配项的下标 - 力扣(Leetcode) 简单解法利用split 函数,判断是否能够拆分,如果 12345678910111213func strStr(haystack string, needle string) int { // 使用split 函数,如果存在needle,则会把其切分为至少两个元素的切片 splitList := strings.Spl 2023-05-31 leetcode
leetcode 104.二叉树的深度个人网站:https://leiqicn.gitee.io/categories/leetcode/104. 二叉树的最大深度 - 力扣(Leetcode) 二叉树节点的深度指的是该节点到根节点的距离,也就是从根节点到该节点的路径长度。而二叉树节点的高度指的是该节点到其子树中最远叶子节点的距离,也就是该节点为根的子树的高度。 所以,可以将整个二叉树的高度定义为根节点的高度,也就是从根节点到最远叶子 2023-05-30 leetcode #DFS #BFS #层序遍历
leetcode 122买动态股票的最佳时机II122. 买卖股票的最佳时机 II - 力扣(Leetcode) 每次只允许在一天买入一支股票,在之后某个时间卖出它。同时,你也可以选择不进行任何交易。 相比于第一题买卖股票的最佳时机(只能进行一次交易),这道题没有限制交易次数,因此我们应该从一个更灵活的角度去考虑如何进行交易。 下面是代码解释: 首先定义变量 sum 记录当前总利润。然后从第二个价格开始遍历,计算当日价格与前一天价格之差。如果价 2023-05-27 leetcode
leetcode 1091.二进制矩阵中的最短路径1091. 二进制矩阵中的最短路径 - 力扣(Leetcode)DFS 超时版本: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950type point struct { x int y int}func shortestPathBinaryMa 2023-05-26 leetcode #二维数组最短路径
leetcode 53.最大子数和Problem: 53. 最大子数组和 个人网站: https://leiqicn.gitee.io/categories/leetcode/[TOC] 思路 这里是经典的最大子序和的问题。我们可以很容易想到贪心的思想。就是如果前边的子序和是正数,则我们会把当前的数添加到前面的子序和上。否则,重新从当前位置开始子序和,丢弃前边的子序和。 解题方法 方法1 算法通过遍历整个数组nums,维护 2023-05-25 leetcode #贪心 #动态规划