
分治
csu_xiji
这个作者很懒,什么都没留下…
展开
-
力扣 461. 汉明距离 位运算 分治
https://leetcode-cn.com/problems/hamming-distance/ 思路:相当于统计x⨁yx\bigoplus yx⨁y结果中1的数量。那么可以使用内置函数计算: class Solution { public: int hammingDistance(int x, int y) { return __builtin_popcount(x^y); } }; 或者使用位运算计算,其中x&(x−1)x\&(x-1)x&原创 2021-06-07 14:45:38 · 124 阅读 · 0 评论 -
力扣 190. 颠倒二进制位 位运算 分治
https://leetcode-cn.com/problems/reverse-bits/ 思路:逐位置颠倒的算法就不说了。说一下分治算法:将其均分成左右两部分,对每部分递归执行翻转操作,然后将左半部分拼在右半部分的后面,即完成了翻转。 利用位运算的性质可以自底向上进行这个过程: 2位一组,每一组的前1位和后1位互换。 4位一组,每一组的前2位和后2位互换。 8位一组,每一组的前4位和后4位互换。 16位一组,每一组的前8位和后8位互换。 32位一组,每一组的前16位和后16位互换。 class原创 2021-03-29 01:26:25 · 284 阅读 · 3 评论 -
力扣 395. 至少有 K 个重复字符的最长子串 分治 滑动窗口
https://leetcode-cn.com/problems/longest-substring-with-at-least-k-repeating-characters/ 思路:分治法,考虑区间[l,r][l,r][l,r],统计其内每个字符的出现次数,然后看是否有字符不满足题意,若满足说明当前区间合法,返回有效长度r−l+1r-l+1r−l+1;若不满足则任何含有该字符的区间(子字符串)都不满足题意,所以我们可以以这个字符为间断,把[l,r][l,r][l,r]分为几个部分分治计算。 class原创 2021-02-28 01:58:28 · 214 阅读 · 0 评论 -
力扣 1382. 将二叉搜索树变平衡 思维+分治
https://leetcode-cn.com/problems/balance-a-binary-search-tree/ 思路:首先序列化二叉搜索树,即对其做一次中序遍历得到一个有序数组。每次都选择l、rl、rl、r的中间位置的值作为当前节点,分治得到左右子节点即可。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode原创 2020-09-28 15:05:55 · 347 阅读 · 0 评论 -
洛谷 P1429 平面最近点对(加强版)分治/暴力+二分
https://www.luogu.com.cn/problem/P1429 思路一:正经解法:分治。首先把nnn个点按照xxx排序,每次按照p[mid].xp[mid].xp[mid].x把点集分成两部分,solve(l,mid)、solve(mid+1,r)solve(l,mid)、solve(mid+1,r)solve(l,mid)、solve(mid+1,r)得到每一部分点对之间的最小值ansansans。那么总体最小值要么等于ansansans,要么等于左右两部分各选一个点组成的点对之间的距离。原创 2020-05-12 18:10:19 · 715 阅读 · 0 评论 -
力扣 面试题07. 重建二叉树 递归分治/非递归版
https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/ 思路:先序遍历:根左右。中序遍历:左根右。那么可以由先序遍历得到根节点的值,依据此值再找到根节点在中序遍历的位置,那么就可以分出左子树和右子树,分治下去即可。 /** * Definition for a binary tree node. * struct TreeNo...原创 2020-04-24 16:18:43 · 408 阅读 · 0 评论 -
力扣 面试题33. 二叉搜索树的后序遍历序列 dfs+分治
https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/submissions/ 思路:假设某棵二叉搜索树的根节点的值为vvv,由二叉搜索树的性质易得:左子树的任意一个节点的值均小于vvv,右子树的任意一个节点的值均大于vvv,已知当前二叉搜索树的后序遍历为postorder[i…j]po...原创 2020-04-23 00:44:21 · 149 阅读 · 0 评论 -
UVA 1608 Non-boring sequences 分治
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4483 题目大意:给一个数字序列,若该序列的任意一个连续子序列中都有唯一出现的值,那么这个序列是non−boringnon-boringnon−boring的,否则这个序列是bori...原创 2019-09-25 13:33:18 · 144 阅读 · 0 评论 -
HDU 6318 逆序数
http://acm.hdu.edu.cn/showproblem.php?pid=6318 Long long ago, there was an integer sequence a. Tonyfang think this sequence is messy, so he will count the number of inversions in this sequence. Becau...原创 2019-03-09 16:19:27 · 326 阅读 · 0 评论 -
POJ 2299 求逆序数 归并排序||离散化&权值树状数组
http://poj.org/problem?id=2299 In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence element...原创 2019-03-09 16:10:51 · 188 阅读 · 0 评论 -
洛谷 P1908 逆序对 归并排序
https://www.luogu.org/problemnew/show/P1908 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就...原创 2019-02-15 17:14:09 · 349 阅读 · 0 评论