文章 2023-12-21 来自:开发者社区

C++双指针算法:统计点对的数目

本周推荐阅读C++二分算法:得到子序列的最少操作次数本题其它解法C++二分查找:统计点对的数目题目给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 edges[i] = [ui, vi] 表示 ui 和 vi 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。第 j 个查询的答案是满足如下条件的点对 (a, b) 的数目:a < bcnt....

C++双指针算法:统计点对的数目
文章 2023-12-12 来自:开发者社区

(C++)和为s的两个数字--双指针算法

个人主页:Lei宝啊愿所有美好如期而遇算法原理双指针法,不一定是说就要使用指针,只是一种形象的说法,在数组中,我们一般将数组下标当做指针。我们定义left和right,left赋值0,right赋值右边界下标,写一个循环,当left小于right就继续循环,在循环里我们比较left和right下标对应的数组的值的和与s的大小,如果和大于s,那么我们使right--,如果大于,我们left++,如....

(C++)和为s的两个数字--双指针算法
文章 2023-11-13 来自:开发者社区

算法学习--双指针与二分查找

一 双指针424. 替换后的最长重复字符 - 力扣(LeetCode)这是一个滑动窗口的问题, 问题可以转化为在一个滑动窗口内, max_cnt 表示出现次数最多的字母个数, 而除去出现次数最多的字母的其他字母的总个数不能超过 k, 求这个滑动窗口的最大长度class Solution { public: int characterReplacement(string s, int k)...

文章 2023-10-31 来自:开发者社区

【LeetCode 算法专题突破】双指针(⭐)

前言学算法入门必学的一个章节,双指针算法,不说废话,直接开始。1. 移动零我们先来一道经典的双指针题目试试水题目链接:283. 移动零题目描述怎么样才能在不创建新数组的情况下把 0 移动到数组的末尾呢?(如果不是有这个要求我肯定也无脑创建一个数组遍历解决)来看代码:代码func moveZeroes(nums []int) { slow, fast := 0, 0 for fa...

【LeetCode 算法专题突破】双指针(⭐)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 最大连续1的个数 III(11)

1. 题目解析题目链接:1004. 最大连续1的个数 III - 力扣(Leetcode)这道题不难理解,其实就是求出最长的连续是1的子数组,但是,他支持了一个操作,就是可以翻转k个0变成1。这个条件一出来,这道题的难度就上来了,情况变得比较的复杂。 2. 算法原理然后我们就可以想一想应该怎么抽象出一条规则:将这个问题转化成:找出最长的子数组,0的个数不超过k个即可,如果使用暴力枚举,思路还是比....

【算法专题突破】双指针 - 最大连续1的个数 III(11)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 无重复字符的最长子串(10)

1. 题目解析题目链接:3. 无重复字符的最长子串 - 力扣(Leetcode) 这道题目不难理解,就是查找最长的无重复字符的最长子串,最后返回最长子串的长度即可。2. 算法原理第一个想到的当然是暴力解法,我们枚举所有符合0情况的子串即可,但是肯定还有优化的方法,用暴力大多超时,还没意思,我们来看看该怎么优化: 我们可以使用滑动窗口来优化暴力解法:首先定义两个指针,让字符进哈希表,如果出现重复字....

【算法专题突破】双指针 - 无重复字符的最长子串(10)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 四数之和(8)

1. 题目解析题目链接:18. 四数之和 - 力扣(Leetcode) 这道题跟三数之和也是一样的,题目很好理解,就是四个数的和等于target的情况,且这四个数不能重复。2. 算法原理首先还是暴力解法:排序 + 暴力枚举 + set去重我们当然是用优化的解法:1. 依次固定一个数a2. 然后在后面的区间,找到他们的和为target - a的数3. 而三数之和,也是固定一个数b,然后找出他们的和....

【算法专题突破】双指针 - 四数之和(8)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 三数之和(7)

1. 题目解析题目链接:15. 三数之和 - 力扣(Leetcode) 题目就是要找出和为0的不重复的三元组,注意三元组的每个元素是得不同的位置,那不重复又是什么意思呢?我们可以看第一个示例,他找出了三个三元组,但是他最后只返回了两个,也就是,三元组的元素相同算同一个三元组。(如果没有就返回空集。)2. 算法原理第一个想法当然是暴力枚举,具体来说就是,先排序,然后暴力枚举,最后用set去重就行,....

【算法专题突破】双指针 - 三数之和(7)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 和为s的两个数字(6)

1. 题目解析题目链接:剑指 Offer 57. 和为s的两个数字 - 力扣(Leetcode) 这道题题目就一句话但是也是有信息可以提取的,最重要的就是开始的那句话,“递增序列”然后在数组中找出两个和为s的数即可(而且是任意一对即可)2. 算法原理这道题很简单,如果用暴力枚举直接两层for循环搞定就行,但是使用暴力解法的话,就没有利用到他是有序序列的这个特性了。看到有序一般我们会想到用二分法,....

【算法专题突破】双指针 - 和为s的两个数字(6)
文章 2023-10-31 来自:开发者社区

【算法专题突破】双指针 - 有效三角形的个数(5)

1. 题目解析题目链接:611. 有效三角形的个数 - 力扣(Leetcode) 我们可以根据示例1来理解这一道题目,他说数组里面的数可以组成三角形三条边的个数,那我们先自己枚举一下所有情况看看: 【2, 2, 3】 【2, 2, 4】 【2, 3, 4】 【2, 3, 4】总共是四种情况,而第二种情况是不成立的,看看示例,我们可以知道,虽然都是2,但是不同位置可以看成不同的元素。2. 算法原理....

【算法专题突破】双指针 - 有效三角形的个数(5)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注