成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

今日面試題:燈及數組統計分析

開發 后端
有100盞燈,依次編號1-100,初始都是關著的。第1次遍歷,打開全部的燈;第2次遍歷,關掉第2盞、第4盞等被2整除的燈;第3次打開被3整除的燈;第i次,對被i整除的燈做如下操作

有100盞燈,依次編號1-100,初始都是關著的。第1次遍歷,打開全部的燈;第2次遍歷,關掉第2盞、第4盞等被2整除的燈;第3次打開被3整除的燈;第i次,對被i整除的燈做如下操作

  • 如果燈開著,就關掉
  • 如果燈關著,就打開

如此交替進行,知道100次遍歷完畢,請問,還有多少盞燈亮著。

=============================================

數組統計分析

原題

給定數組A,大小為n,數組元素為1到n的數字,不過有的數字出現了多次,有的數字沒有出現。請給出算法和程序,統計哪些數字沒有出現,哪些數字出現了多少次。能夠在O(n)的時間復雜度,O(1)的空間復雜度要求下完成么?

分析

這個題目,是有一定技巧的。技巧是需要慢慢積累,待經驗多了之后,可以靈感或者直覺,就產生了技巧。如果不知道技巧,那該怎么辦呢? 在開始分析之前,說明兩個問題:

  • 原數組是沒有排序的。如果排序了,很簡單的。
  • O(1)的空間含義,可以使用變量,但不能開辟數組或者map等來計數。

這個題目,很直接的解法就是兩層遍歷,O(n^2)的復雜度,O(1)的空間。空間滿足了,但是時間沒有。 很多類似的題目,都會用XOR的方法,大家仔細想一下,這個題目,可以么?或者這個題目和可以用XOR的題目的差異在哪兒?最直接的就是,每一個數字的重復的次數是不同的。

還有就是以空間換時間的方法,例如用hash map或者數組來計數。時間滿足了,但是空間沒有滿足。 那怎樣才能有時間復雜度O(n),空間復雜度O(1)的算法呢?不能開辟新的空間,那么只剩下,重復利用數組A。那么該如何利用數組A呢?

首先,我們介紹一種三次遍歷數組的方法,我們都考慮數組從0開始:

  • 第一次遍歷:對于每一個A[i] = A[i] * n
  • 第二次遍歷:對于每一個i,A[A[i]/n]++
  • 第三次遍歷:對于每一個i,A[i] % n就是出現次數

A[i]應該出現在A中的A[i]位置,乘以n、再除以n,很容易的來回變換;第二次遍歷,對于A[i]本來所在的位置不斷增1,但絕對不對超出n的,那每一個i出現的次數,就是A[i]對n取余。

還有一種兩次遍歷的方法,也是上面的思路:題目中數組是1到n,為了方便算法考慮,以及數組存儲方便,我們考慮0-n-1,結果是相同的。 考慮A[i],現在位置是i,如果采用A來計數,它的位置應該是A[i] % n,找到計數位置,該如何處理這個位置呢?加1么?顯然不可以,這里有一個技巧,就是加n,有兩個原因

  • 加n可以保證A[i] % n是不變的
  • A數組,最后每一個元素表示為A[i] = x + k*n,其中x

上面的思路,轉換為代碼如下:

enter image description here

原文鏈接:http://www.ituring.com.cn/article/55331

責任編輯:陳四芳 來源: 圖靈社區
相關推薦

2013-09-17 11:06:12

序列排序

2019-09-18 09:05:58

技術SQLDevOps

2015-08-19 09:40:51

統計分析

2013-10-16 16:15:26

單鏈表

2012-09-25 14:18:51

Linux桌面環境

2015-02-27 09:53:06

Countly

2010-12-30 09:44:10

C#Attribute

2013-10-16 15:50:20

Google面試題

2024-11-07 11:10:34

Python腳本統計分析

2011-03-14 14:41:59

大數據數據中心

2014-06-04 09:42:41

工業控制系統APT

2009-06-29 15:25:21

SessionJSP

2015-01-05 17:28:02

JMP

2011-05-27 13:56:04

網站流量

2010-06-01 14:30:06

Mrtg教程

2014-10-28 14:59:42

手游付費行為數據統計分析

2010-06-07 17:26:41

Mrtg教程

2022-02-18 12:58:35

go-monitor工具服務質量

2021-06-10 09:53:04

數據統計統計分析數據

2011-05-27 14:03:22

網站流量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区在线观看国产 | 国产美女在线看 | 午夜看看 | 国产亚洲一区二区三区 | 亚洲欧美视频一区 | 大学生a级毛片免费视频 | 日韩视频国产 | 青青草社区 | 国产精品精品视频一区二区三区 | 国产欧美一区二区三区在线播放 | 亚洲欧美一区二区三区国产精品 | 欧美一区视频 | www天天操| 一级久久久久久 | 看a网站 | 亚洲高清在线 | 成人午夜激情 | 狠狠爱网址 | 日本在线网站 | 二区在线视频 | 玖玖综合在线 | 男人av在线播放 | 久久国产精品久久久久 | 色www精品视频在线观看 | 亚洲精品久久久一区二区三区 | 欧美精品一区二区三区蜜桃视频 | 嫩草视频在线免费观看 | 国产网站在线播放 | 91久久久久久| 亚洲国产一区二区三区 | 日韩免费网站 | 日本污视频 | 国产精品久久久久久妇女6080 | 日韩国产专区 | 精品在线视频播放 | 国产精品久久精品 | 欧洲精品一区 | 在线看片国产精品 | 亚洲精品大片 | 亚洲日本欧美日韩高观看 | 久久久久久亚洲 |