随笔分类 -  基础算法

基础算法
特殊哈希表-原地哈希
摘要:##例题一 [链接:41.缺失的第一个正数](https://leetcode.cn/problems/first-missing-positive/solutions/ "缺失的第一个正数") ![image](https://img2023.cnblogs.com/blog/3090474/20 阅读全文
posted @ 2023-05-24 19:41 sc01 阅读(163) 评论(0) 推荐(0)
轮转数组
摘要:[轮转数组](https://leetcode.cn/problems/rotate-array/description/ "轮转数组") ##简介 ![image](https://img2023.cnblogs.com/blog/3090474/202305/3090474-2023052222 阅读全文
posted @ 2023-05-22 22:59 sc01 阅读(16) 评论(0) 推荐(0)
差分数组的应用
摘要:##介绍 给定一个序列 $a$ ,其相邻两项之差构成另一个序列 $s$,则称 $s$ 为差分数组。 下图是一个简单的例子: 差分数组主要适用于区间修改。如上表中的例子,我们进行该操作:将下标区间为$[1,4]$内的元素都加上3。暴力方法是进行遍历,给每一个元素都加上该数值,但是这样的话时间消耗很大, 阅读全文
posted @ 2023-04-02 20:57 sc01 阅读(87) 评论(0) 推荐(0)
选数异或-蓝桥杯
摘要:[原题:选数异或](https://www.lanqiao.cn/problems/2081/learning/ "原题:选数异或") ##题目描述 ![image](https://img2023.cnblogs.com/blog/3090474/202304/3090474-2023040213 阅读全文
posted @ 2023-04-02 15:27 sc01 阅读(217) 评论(0) 推荐(0)
Brian Kernighan's 算法
摘要:##介绍 Brian Kernighan's 算法是一种用于计算一个整数的二进制表示中有多少个1的高效算法。该算法的基本思想是每次将该整数的最右边的一个1置为0,直到该整数变为0为止。每次将1置为0的操作都会使得该整数的二进制表示中的1的个数减少1。 int count_set_bits(int n 阅读全文
posted @ 2023-03-28 22:36 sc01 阅读(292) 评论(0) 推荐(0)
整数拆分(数学证明)
摘要:343.整数拆分 ##题目 给定一个正整数n ,将其拆分为k个正整数的和( k>= 2 ),并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: n = 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入: n = 10 输出: 36 解释: 阅读全文
posted @ 2023-03-28 14:42 sc01 阅读(675) 评论(0) 推荐(1)
蓝桥杯-砍竹子
摘要:蓝桥杯 2022 省赛 B 组 J 题:砍竹子 [蓝桥杯 2022 省 B] 砍竹子 题目描述 这天,小明在砍竹子,他面前有 $n$ 棵竹子排成一排,一开始第 $i$ 棵竹子的高度为 $h_{i}$. 他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一段相同高度的竹子使用,假设这一段竹 阅读全文
posted @ 2023-03-23 22:33 sc01 阅读(331) 评论(0) 推荐(0)
蓝桥杯-等差数列
摘要:等差数列 ##题目描述 数学老师给小明出了一道等差数列求和的题目。 但是粗心的小明忘记了一部分的数列,只记得其中 $N$ 个整数。 现在给出这 $N$ 个整数,小明想知道包含这 $N$ 个整数的最短的等差数列有几项? ###输入格式: 输入的第一行包含一个整数$N$。 第二行包含 N个整数 $A_1 阅读全文
posted @ 2023-03-21 22:10 sc01 阅读(46) 评论(0) 推荐(0)
递增三元组
摘要:[递增三元组](https://www.luogu.com.cn/problem/P8667 "递增三元组") # [蓝桥杯 2018 省 B] 递增三元组 ## 题目描述 给定三个整数数组 $A = [A_1, A_2,\cdots, A_N]$,$B = [B_1, B_2,\cdots, B_ 阅读全文
posted @ 2023-03-20 22:04 sc01 阅读(33) 评论(0) 推荐(0)
合并区间(贪心策略)
摘要:合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals = [[1,3],[2,6],[ 阅读全文
posted @ 2023-03-06 17:00 sc01 阅读(67) 评论(0) 推荐(0)
单调栈
摘要:栈是一种后进先出的线性的数据结构,但若在栈的结构之上再规定栈中元素大小需满足单调关系,即成为单调栈。 单调栈分为单调递增栈和单调递减栈: 1. 单调递增栈即栈内元素保持单调递增的栈 2. 单调递减栈即栈内元素保持单调递减的栈 操作规则(以单调递增栈为例): 1. 如果新的元素比栈顶元素大,就入栈 2 阅读全文
posted @ 2023-02-18 22:35 sc01 阅读(239) 评论(0) 推荐(0)
DFS专题1
摘要:#例题一 39.组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按任意顺序返回这些组合。candidates 中的同一个数字可以无限制重复 阅读全文
posted @ 2023-02-09 15:25 sc01 阅读(20) 评论(0) 推荐(0)
删除链表的倒数第N个节点
摘要:链接:删除链表的倒数第N个节点 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 题解一 一个直观的想法是一次遍历计算链表长度,之后对于给定的n,可以很快找到欲删除的结点。 题解二 对于一个问题,最好是能掌握多种解法,这样才能将一道题的价值最大化。 本解法是力扣Le 阅读全文
posted @ 2023-02-05 20:22 sc01 阅读(23) 评论(0) 推荐(0)
两数之和-双指针+哈希表
摘要:链接:两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例: 输入:n 阅读全文
posted @ 2023-02-03 15:30 sc01 阅读(30) 评论(0) 推荐(0)