简单分治案例
来源:互联网 发布:光明数据 陈建栋 编辑:程序博客网 时间:2024/06/03 11:18
题目:
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
题解:
将数组二分,然后进行递归,递归到一就是当前的众数,再合并,比较两个众数取次数多的往上并,中间用到计数函数count。
代码:
class Solution {
public:
int majorityElement(vector<int>& nums) {
return majority(nums, 0, nums.size() - 1);
}
private:
int majority(vector<int>& nums, int left, int right) {
if (left == right) return nums[left];
int mid = left + ((right - left) >> 1);
int lm = majority(nums, left, mid);
int rm = majority(nums, mid + 1, right);
if (lm == rm) return lm;
return count(nums.begin() + left, nums.begin() + right + 1, lm) > count(nums.begin() + left, nums.begin() + right + 1, rm) ? lm : rm;
}
};
- 简单分治案例
- 分治法-简单矩阵
- 分治算法-简单了解
- 简单的分治模板
- 分治简单算法
- 分治算法基本思想和典型案例
- 分治案例_leetcode_46. Permutations-全排列
- 【BZOJ2683】简单题【CDQ分治】
- poj 1741 简单树分治
- 分治算法的简单应用
- Spring简单案例
- Nunit简单操作案例
- 串口简单案例
- struts2国际化简单案例
- Dom4j简单案例
- ibatis 简单开发案例
- 简单标签案例
- URL Rewrite简单案例
- python 文件和流
- Android Studio开发时多工程引用相同Library项目的配置方法
- fig4.16
- Android开发之解决ListView和ScrollView滑动冲突的问题
- expdp导出时报错,ORA-12154 TNS: 无法解析指定的连接标识符
- 简单分治案例
- 高仿滴滴打车源码Demo
- Hadoop小知识点
- vmware-hostd.exe 占用443端口导致Apache无法正常启动?
- set names utf8还是乱码的解决办法
- 【解题报告】Vijos1143 三取方格数
- PCIe学习笔记(12)--- PCIe总线的枚举过程 ENUMERATION
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习之预加载的实现(二)
- SSH框架整合