zoukankan      html  css  js  c++  java
  • 一个3升的桶和一个5升的桶,怎么得到4升的水。

    3+3-5+3=4

    满3升桶--〉倒进5升桶里
    满3升桶--〉倒进5升桶里--〉3升桶里最后会留1升
    倒干净5升桶
    把3升桶里的1升水倒进5升桶里
    再装满3升桶--〉倒进5升桶里---〉共4升

    --------------------------------------------------------------

    给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?

    分析:我们先来看如果要把这些URL全部加载到内存中,需要多大的空间。

    1MB = 2^20 = 10^6 = 100W

    1GB = 2^30 = 10^9 = 10亿

    50亿 = 5G * 64 Byte = 320G

    分别扫描A,B两个文件,根据hash(url)%k(k为正整数,比如k = 1000,那么每个小文件只占用300M,内存完全可以放得下)将url划分到不同的k个文件中,比如a0,a1,....a999;b0,b1,...b999;

    这样处理后相同的url肯定在对应的小文件中(a0 vs b0,a1 vs b1,...a999 vs b999)因为相同的url%1000的值肯定相同,不对应的小文件不可能有相同的url;

    然后我们只要求出1000对小文件中相同的url即可。比如对于a0 vs b0,我们可以遍历a0,将其中的url存放到hash_map中,然后遍历b0,如果b0中的某个url在hash_map中,则说明此url在a和b中同时存在,保存下来即可。

    --------------------------------------------------------------------

    四棵树种成空间的正四面体可以两两之间距离相同

    --------------------------------------------------------------------

    两个数不借助第三个数交换

    a=a+b

    b=a-b

    a=a-b

    ------------------------------------------------------

    5五只猫5分抓5只老鼠,100分抓100只老鼠多少只猫

    5只(将5只看成一个整体)

    ----------------------------------------------------------

    八个小球,有一个重,称两次

  • 相关阅读:
    N个数字每X个数字组成一组,求组数
    生成带文本的UIImage
    Linux创建环境变量(Mac OS)
    为UIView绘制单边的boder
    ecshop之随机文章
    微软继MVC5后,出现ASP.NET VNEXT
    本科毕业生转正之前谈待遇
    ecshop title优化
    百度地图开发之一】申请Key和配置初览显示地图
    项目总结—jQuery EasyUI-DataGrid 拼表及查看详情
  • 原文地址:https://www.cnblogs.com/sbclmy/p/10854337.html
Copyright © 2011-2022 走看看