技术栈
分治
NuyoahC
1 个月前
c++
·
笔记
·
分治
算法笔记(五)——分治
分治算法字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序)…
闻缺陷则喜何志丹
2 个月前
c++
·
算法
·
二分查找
·
力扣
·
分治
·
最大
·
拆位法
【C++二分查找 拆位法】2411. 按位或最大的最小子数组长度
C++二分查找 拆位法(分治法)给你一个长度为 n 下标从 0 开始的数组 nums ,数组中所有数字均为非负整数。对于 0 到 n - 1 之间的每一个下标 i ,你需要找出 nums 中一个 最小 非空子数组,它的起始位置为 i (包含这个位置),同时有 最大 的 按位或运算值 。 换言之,令 Bij 表示子数组 nums[i…j] 的按位或运算的结果,你需要找到一个起始位置为 i 的最小子数组,这个子数组的按位或运算的结果等于 max(Bik) ,其中 i <= k <= n - 1 。 一个数组的
Aurelius-Shu
3 个月前
leetcode
·
排序算法
·
动态规划
·
递归
·
分治
·
逆向思维
术之尽头:排序算法优化思考
排序算法是人们研究的最多的一类计算机算法,也是计算机中最基础、使用频率最高的一类算法。虽然对排序算法的理论研究在目前看来被认为已经是最优解,但面对工业界各类问题,人们还是持续提出了针对特定场景的“更优”的算法。通过对排序算法的研究和优化,我们可以清晰的感受和思考算法优化的过程与诀窍。
狗也会摔跤TUT
5 个月前
算法
·
排序算法
·
分治
【刷题篇】分治-归并排序
给你一个整数数组 nums,请你将该数组升序排列。在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录 record,返回其中存在的「交易逆序对」总数。
芥末虾
5 个月前
数据结构
·
c++
·
算法
·
排序算法
·
归并排序
·
快速排序
·
分治
【优选算法】分治 {三分快排:三指针优化,随机选key,快速选择算法;归并排序:统计数组中的逆序对,统计数组中的翻转对;相关编程题解析}
优化一:三指针优化之前学习的快速排序无法妥善处理相等或重复序列的排序问题(有序且三数取中无效),使快速排序的效率无法达到最优。
阿常11
5 个月前
算法
·
leetcode
·
职场和发展
·
哈希
·
分治
leetcode——169.多数元素(多解法)
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
一直学习永不止步
5 个月前
java
·
leetcode
·
二叉树
·
树
·
数组
·
哈希表
·
分治
LeetCode题练习与总结:从中序与后序遍历序列构造二叉树--106
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。
邪神与厨二病
6 个月前
二分查找
·
模拟
·
分治
·
z算法
·
构造
·
拓展kmp
·
根号分治
Codeforces Round 943 (Div. 3)(A,B,C,D,E,F,G1,G2)
比赛链接这场比较有意思,可惜最近太忙了没法仔细研究,只能看看别人的题解然后补掉了。这场还是比较难的。C,E是构造,D是个模拟,F需要先推出一个结论,之后二分查找,G题是字符串的题,需要先用拓展kmp预处理一下,然后做法也很多,有根号分治,分治+剪枝,还有一个按顺序加数然后二分的做法。FG比较难,解题思路确实很妙。
wang_nn
6 个月前
c++
·
二叉搜索树
·
分治
·
面试经典150
【面试经典 150 | 分治】将有序数组转换为二叉搜索树
本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更……专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾与总结,文章结构大致如下,部分内容会有增删:
旋转的油纸伞
7 个月前
算法
·
leetcode
·
矩阵
·
二分查找
·
分治
LeetCode-240. 搜索二维矩阵 II【数组 二分查找 分治 矩阵】
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
_GR
8 个月前
数据结构
·
c++
·
算法
·
leetcode
·
排序算法
·
快速排序
·
分治
每日OJ题_算法_分治快排②_力扣912. 排序数组(三路划分快排)
目录三路划分快排原理力扣912. 排序数组解析代码分治就是分而治之,快排在数据结构也学过了,现在来学一学三路划分快排(数组划分三块):
EQUINOX1
8 个月前
数据结构
·
c++
·
算法
·
排序算法
·
分治
·
树状数组
CDQ分治详解,一维、二维、三维偏序
设R是集合A上的一个关系,如果R是自反的、反对称的、传递的,则称R为一个偏序关系(或称部分序关系、半序关系)。
蒋志昂
10 个月前
c语言
·
数据结构
·
算法
·
排序算法
·
哈希算法
·
分治
决战排序之巅(二)
欢迎来到决战排序之巅栏目, 本期给大家带来的是归并排序与计数排序的实现与比较。 在上期决战排序之巅(一)中,给大家带来了插入排序(希尔) 与 选择排序(堆排) 的实现与比较,感兴趣的可以看看。
BIT_666
10 个月前
python
·
算法
·
回溯
·
递归
·
分治
Python - 深夜数据结构与算法之 Divide Conquer & Backtrack
目录一.引言二.分治与回溯简介1.Divide & Conquer 分治2.BackTrack 回溯三.经典算法实战
请揣满RMB
1 年前
数据结构
·
算法
·
排序算法
·
分治
分治—快速选择算法
题目链接:215. 数组中的第K个最大元素 - 力扣(LeetCode)给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。
不想悲伤到天明
1 年前
分治
·
记忆化
241. 为运算表达式设计优先级(分治 +记忆化)
Problem: 241. 为运算表达式设计优先级给你一个由数字和运算符组成的字符串 expression ,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以 按任意顺序 返回答案。
Qres821
1 年前
线性代数
·
矩阵
·
递归
·
分治
线性代数+分治:446E
https://codeforces.com/problemset/problem/446/E把官方题解翻译了一遍
盖盖的博客
1 年前
java
·
leetcode
·
位运算
·
分治
OJ练习第180题——颠倒二进制位
力扣链接:190. 颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。
不能再留遗憾了
1 年前
数据结构
·
算法
·
排序算法
·
分治
·
归并
【算法系列篇】分治-归并
上一篇算法文章,我们介绍了分治-快排的算法,今天我将为大家分享关于分治的另外一种算法——归并。归并算法是一种常用的排序算法,它采用分治策略将待排序的数组分解为更小的子数组,然后逐步合并这些子数组以获得最终的有序数组。归并排序的主要思想是将两个有序的子数组合并成一个有序的数组。