当前位置: 首页 > news >正文

开发公司成本费用表格东莞百度推广优化公司

开发公司成本费用表格,东莞百度推广优化公司,凡科做的免费网站,创意型网站建设文章目录 前言一、 bitset模拟实现二、 常见面试题1.给你一百亿个整数,找到只出现一次的数字2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集? 前言 快速查找某个数据是否在一个集合中排序 去重…

文章目录

  • 前言
  • 一、 bitset模拟实现
  • 二、 常见面试题
    • 1.给你一百亿个整数,找到只出现一次的数字
    • 2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集?


前言

  1. 快速查找某个数据是否在一个集合中
  2. 排序 + 去重
  3. 求两个集合的交集、并集等
  4. 操作系统中磁盘块标记

数据是否在给定的整形数据中,结果是在或者不在,刚好是两种状态,那么可以使用一个二进制比特位来代表数据是否存在的信息,如果二进制比特位为1,代表存在,为0代表不存在。比如:
在这里插入图片描述

一、 bitset模拟实现

namespace bit {template<size_t N>//非类型模板参数//N为我们要开的多少个比特位class bitset {public:bitset(){//我们用int类型来模拟,一个int一共32个比特_a.resize(N / 32 + 1);}void set(size_t x) {//将对应比特位变为1int i = x / 32;//i为在第几个int中int j = x % 32;//j为在这个int的32个比特位的哪个位置_a[i] |= (1 << j);//按位或::只有双方对应位置都是0的时候才为0}void reset(size_t x) {//将对应比特位变为0int i = x / 32;int j = x % 32;_a[i] &= (~(1 << j));//按位与::只有双方对应位置都是1的时候才为1//左移后按位取反,相当于除了j位置为0其他位置都为1,按位与的时候其他位//不受影响}bool test(size_t x) {//判断这个位置存不存在int i = x / 32;int j = x % 32;//这里按位与并没有改变原来值的大小,//因为返回的是一个临时变量return _a[i] & (1 << j);}private:vector<int> _a;};

在这里插入图片描述
在这里插入图片描述

二、 常见面试题

1.给你一百亿个整数,找到只出现一次的数字

我们可以使用两个位图,两个位图所组成的两位的二进制,用来表示出现次数,我们只需对两个表中的存在情况进行讨论就能确定他们出现此处,找出所有标记位01的数
00出现0次,01出现1次,10出现两次,11出现两次以上

template<size_t N>class twobitset{public:void set(size_t x){//00出现0次,01出现1次,10出现两次,11出现两次以上// 00 -> 01if (!_bs1.test(x) && !_bs2.test(x)){_bs2.set(x);} // 01 -> 10else if (!_bs1.test(x) && _bs2.test(x)){_bs1.set(x);_bs2.reset(x);}// 本身10代表出现2次及以上,就不变了}bool is_once(size_t x){return !_bs1.test(x) && _bs2.test(x);}private:bitset<N> _bs1;bitset<N> _bs2;};

2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集?

两个文件分别放到位图里面,然后判断两个位图的相同位置值是否相同。

int main()
{int a1[] = {1,2,3,3,4,4,4,4,4,2,3,6,3,1,5,5,8,9 };int a2[] = {8,4,8,4,1,1,1,1};bit::bitset<10> bs1;bit::bitset<10> bs2;// 去重for (auto e : a1){bs1.set(e);}// 去重for (auto e : a2){bs2.set(e);}int N=10;//N为两个文件中的最大值for (int i = 0; i < N; i++){//遍历如果在两个位图中相同位置都为1说明为交集if (bs1.test(i) && bs2.test(i)){cout << i << " ";}}cout << endl;
}
http://www.tj-hxxt.cn/news/38244.html

相关文章:

  • 深圳手机企业网站设计芜湖网络营销公司
  • 商业网站改版需要多久sem竞价教程
  • 企业网站 建设 流程关键字广告
  • 一个网站做app关键词优化公司前十排名
  • 安卓从网站获取视频怎么做优书网首页
  • 用vs2005做网站 怎样搭配色彩百度爱采购推广一个月多少钱
  • 国外域名购买网站域名大全免费网站
  • 做可转债好的网站seo网站推广下载
  • wordpress app制作优化什么
  • 手机网站抢拍是怎么做的郑州百度推广公司
  • 番禺公司网站建设郑州seo技术外包
  • 网站建设一般需要多少钱电脑优化软件哪个好用
  • 网站优化 北京公司网站推广怎么做
  • 中山网站制作费用游戏推广文案
  • 成熟网站开发联系电话网站优化关键词
  • 购物网站建设教程广州新闻头条最新消息
  • 利用电脑做网站百度站长平台官网
  • 快站淘客网站如何优化流程
  • 电脑做网站服务器WIN7 买个域名seo是什么意思中文
  • 日照建站哪家好情感式软文广告
  • 坪地网站建设价格武汉seo关键词优化
  • 做展示空间设计的网站怎么做电商卖东西
  • 自己的网站怎么做优化企业推广软件
  • 风铃网做微网站要钱吗互联网营销模式
  • 上海网站建设报价单微友圈推广平台怎么加入
  • 中国网站排名前100百度网站推广价格查询
  • 厦门网站制作哪里好薇seo诊断服务
  • 湛江免费建站nba总得分排行榜最新
  • 文档下载免费网站百度seo优化技术
  • 企业微网站模版百度网页版