代码编织梦想

第八章 贪心算法 part03(● 1005.k次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果 )-爱代码爱编程

学习目标: ● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果 学习内容:● 1005.K次取反后最大化的数组和 https://programmercarl.com/1005.K

算法笔记p335堆-爱代码爱编程

目录 堆定义堆建堆(以大顶堆为例)删除堆顶元素插入元素 堆排序排序思路代码实现 堆 堆是一颗完全二叉树,树中每个结点的值都不小于(或不大于)其左右孩子结点的值。 大顶堆:父亲结点的值大

codeforces round 926 (div. 2) c. sasha and the casino-爱代码爱编程

题目链接 思路:         他想知道自己是否可以赢取尽量多的数量的硬币。即他要采取措施让自己的硬币在任何情况下(不会连输超过x次)都要不断增多。         即我们考虑第一次,第二次,,,第x次,每一次都有赢和输的两种可能,每一次要赌多少硬币呢?我们不管这一次输多少,但是要保证这一次如果赢的话,要使硬币量大于原始的a,用二分判断出这一次最少

c++ 二维差分 二维前缀和逆运算 差分矩阵-爱代码爱编程

输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c ,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的

c++ 二维前缀和 子矩阵的和-爱代码爱编程

输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2 ,表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。 输入格式 第一行包含三个整数 n,m

c++ 基础算法 归并排序-爱代码爱编程

给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n 。 第二行包含 n 个整数(所有整数均在 1∼109 范围

c++ 数论相关题目:容斥原理。能被整除的数-爱代码爱编程

给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm 。 请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。 输入格式 第一行包含整数 n 和 m 。 第二行包含 m 个质数。

集合问题(并查集)-爱代码爱编程

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例1: 输入 4 5 9 2 3 4 5 输出 YES 0 0 1 1  样例2: 输入 3 3 4 1 2 4 输出 NO 思路:         这道题关键点在于。         当集合中有一个元素均存在

c++ 数论相关题目 求组合数iv-爱代码爱编程

输入 a,b ,求 Cba 的值。 注意结果可能很大,需要使用高精度计算。 输入格式 共一行,包含两个整数 a 和 b 。 输出格式 共一行,输出 Cba 的值。 数据范围 1≤b≤a≤5000 输入样例: 5 3

c++ 数论相关题目(快速幂)-爱代码爱编程

给定 n 组 ai,bi,pi ,对于每组数据,求出 abiimodpi 的值。 输入格式 第一行包含整数 n 。 接下来 n 行,每行包含三个整数 ai,bi,pi 。 输出格式 对于每组数据,输出一个结果,表示 a

算法常用思路总结-爱代码爱编程

思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路:代码: 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目:猴子选大王代码

【算法笔记】计算几何之向量_向量几何计算-爱代码爱编程

文章目录 前言向量向量的模长向量的加法 相反向量向量的减法向量的点积向量的叉积习题求任意多边形的面积 前言 本来想写一篇计算几何的博客,没想到写不完了,那就写完向量吧 向量 有大小有

验证二叉搜索树:中序遍历-爱代码爱编程

对应题目:LeetCode 98 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。一棵二叉搜索树可以为空,若不为空,则需要满足以下性质: 非空左子树中所有节点的值小于根节点的值;非

完全二叉树节点个数 & 对称二叉树-爱代码爱编程

对应题目:LeetCode 222 & LeetCode 101 计算树的节点个数需要采用遍历的方法,时间复杂度为 O

二叉树的最大/最小深度:后序遍历_后序遍历二叉树最大深度-爱代码爱编程

对应题目:LeetCode 104 & LeetCode 111 搜索二叉树的最大/最小深度可以很简单地通过层序遍历解决,同时也可以通过深度优先搜索解决。将搜索二叉树最大/最小深度的问题分解为搜索其左子树/右子树的

滑动窗口最大值:单调队列-爱代码爱编程

对应题目:LeetCode 239 显然,此题的暴力解法的复杂度是 O (

寻找最小长度子数组:滑动窗口-爱代码爱编程

对应题目:LeetCode 209 滑动窗口是数组操作中的一种重要方法。滑动窗口也是一种双指针方法,两个指针分别指向子数组的起始和终止位置。算法的思想是通过不断调节子数组的起始和终止位置,从而寻找符合条件的子数组。

翻转字符串中的单词:全局+局部翻转-爱代码爱编程

对应题目:LeetCode 151 如果允许使用辅助空间,本题的解决思路可以非常直接:使用split库函数分割单词,然后定义一个新的字符串,把分割好的单词倒序相加。但是,字符串翻转类型的问题往往可以采用全局翻转+局部翻

替换字符串中的字符:双指针法_给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字-爱代码爱编程

对应题目:给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将每个数字字符替换为“number”,而字母字符保持不变。 如果申请新数组,本题会非常简单。但是,若想原地修改字符串,暴力解法将花费

四数之和:哈希和双指针-爱代码爱编程

对应题目:LeetCode 454 & LeetCode 18 LeetCode 454(四数相加 II) LeetCode 18(四数之和) N数之和问题一般可以通过哈希法和双指针法解决,具体使用哪种方法