1. 程式人生 > >“1到10萬這些數,去除2個並打亂次序,如何找出那兩個數。(不準用點陣圖)”...

“1到10萬這些數,去除2個並打亂次序,如何找出那兩個數。(不準用點陣圖)”...

#include <algorithm> #include <iostream> #include <vector> #include <ctime> using namespace std; void shuffle(vector<int> & v) { int const N = v.size(); for(int i = 0; i < N; ++i){ v[i] = i + 1; } random_shuffle(v.begin(), v.end()); cout << "target: " << v[N-2] << ' ' << v[N-1] << endl; v[N-2] = 0; // 亂序後,把最後兩個標為刪除 v[N-1] = 0; } void find_missing(vector<int> & v) { cout << "result: "; sort(v.begin(), v.end()); // 排序算不上考點,但卻影響的時間複雜度。當然10萬的數用O(n*Log(n))都能對付 for(int i = 2, N = v.size(); i < N; ++i){ // v[0], v[1] is 0, so start from v[2] if(v[i] - v[i-1] > 1 ){ // 找不連續的 cout << v[i] - 1 << ' '; } } } int main() { srand(time(0)); vector<int> v(100000); shuffle(v); find_missing(v); }

相關推薦

“1到10這些去除2打亂次序如何個數不準點陣”...

#include <algorithm> #include <iostream> #include <vector> #include <ctime> using namespace std; void shuffle(vect

CSU 1323 求一堆中取出2異或使得異或值大於某個數

  zzy養了一隻小怪獸和N只凹凸曼,單挑的話每隻凹凸曼都不是小怪獸的對手,所以必須由兩隻凹凸曼合作來和小怪獸戰鬥。凹凸曼A和凹凸曼B合作的戰鬥力為他們戰鬥力的異或值。現在由zzy從N只凹凸曼中選出兩隻來和小怪獸戰鬥。請問zzy能否選出兩隻凹凸曼使他們能夠戰勝小怪獸(他們的戰鬥力比小怪獸大)。

求一堆中取出2異或使得異或值大於某個數

#include<stdio.h> int n,m; struct haha { int next[3]; int nm; }node[100005*4]; int pos; int makend() { int i; pos++; for(i=0;

陣列中有三個數只出現一次其它的恰好出現這三個數

具體的題意如題 當我第一次碰到這類題的時候是宿舍的舍友分享的,當時他說的問題還要簡單一些,具體的題意是"陣列中只有一個數只出現一次,其它的數恰好出現兩次,找出這個數。"  當時我的第一感覺就是要用到快排,因此得出第一種演算法,將陣列進行快排的第一層排序,然後從中間分開,數字

之和:給定一個整數陣列其中個數相加等於目標值

題目:給定一個整數數列,找出其中和為特定值的那兩個數。 你可以假設每個輸入都只會有一種答案,同樣的元素不能被重用。 有三種思路: 第一個思路:遍歷陣列i從第一個數開始,j從(i+1)開

Java演算法給定一個整數陣列其中個數相加等於目標值

給定一個整數陣列,找出其中兩個數相加等於目標值  例如:給定陣列及目標值 nums = [2,7,11,15] ,target = 9  因為nums[0] + nums[1] = 2 + 7 = 9  返回[0,1] /** * 使用輔助空間(使用雜湊表

C中程式設計實現個數組中只有個數不是成對出現個數

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> void Find(int *arr, int sz, int *p1, int *p2) { int num = 0; int i

給一個字串有大小寫字母要求寫一個函式把小寫字母放在前面 大寫字母放在後面儘量使用最小空間時間複雜度指標做 如:aAbBcCdD ---àabcdABCD

#include <stdlib.h> int SmallToCaptial( char *str, char *outbuf ) {char *p = str;if (str == NULL || outbuf == NULL){return -1;}while (*p){if (*p >

【Tiny6410 And Linux】—6.2—LCD 驅動測試程式BMP 顯示點陣——程式碼

剛才看個小視訊,關於華山遊客滯留的,哎,真是花錢買罪吃,下回一定得選好旅遊地點! 少點廢話,上一篇文章是關於 LCD 測試程式(BMP 顯示點陣圖)的基本原理的介紹,今天就發一下程式碼吧,由於中間遇到點小問題,我的測試程式總是出現Segmentation Fault這樣的

不用第三方參交換2的值的種宏函

三方 logs cto ring using def names 第三方 fine #include <iostream> #include <stdio.h> #include <string.h> #include <vect

關於去除2inline-block之間的間距

mage 父親 更新 com lock -1 記錄 between 記憶 今天要做 這種效果的圖。我是用span做的 圖文與圖文按鈕。因為行內元素沒有width與height,(雖然可以用padding撐大),本人更喜歡用width與height。於是用了display:i

使用類的靜態字段和構造函我們可以跟蹤某個類所創建對象的個數請寫一個類在任何時候都可以向它查詢“你已經創建了多少對象?”

.com 使用 mage .cn time 多少 system number 字段 實驗源程序: //信1605-3 20163578 於丁一 package 可查詢你創建了多少對象; public class Zuoye { int number; public Zuoy

使用類的靜態字段和構造函我們可以跟蹤某個類所創建對象的個數請寫一個類在任何時候都可以向它查詢“你已經創建了多少對象?

創建對象 跟蹤 bsp 使用 被調用 多少 對象 main 靜態 public class NumberOfObject{ public static int count=0; //使用靜態字段。 NumberOfObject(){count++;System.

使用類的靜態字段和構造函我們可以跟蹤某個類所創建對象的個數請寫一個類在任何時候都可以向它查詢“你已經創建了多少對象?”

程序流程圖 既然 設計思想 程序 mage http new log any 一、設計思想:既然每次調用這個類的構造函數都要計算一次數量,那麽只需要在構造函數中放入一個用來計算創建次數的數值就行了,所以設定靜態int型數字n;然後在構造函數中加入n++; 二、程序流程圖:

假設在32位機器上請在2未經排序數字中中間值 給算法思路就可以

iad use tar www sina gtk 算法 irf 機器 訟23乙6j8型f漳略cshttp://shequ.docin.com/kln26571 kxYsa2矢62祭匝練6http://shufang.docin.com/sina_5847497260 1

字符串組 輸入3字符串要求按由小到大的字母順序輸出; 輸入n學生的姓名和學號到字符串組中在輸入一個姓名如果班級有該生則返回其信息否則返回本班無此人

emp zhang 查詢 i+1 [1] 返回 思路 lan 字符數組 輸入3個字符串,要求按由小到大的字母順序輸出 如 輸入franch england china,輸出結果是china england franch 三個數排序輸出,比較三個數的大小怎麽做? a=18 b

java算法面試題:遞歸算法題2 第1個人102比第1人大2依次遞推遞歸方式計算第8個人多大?

else oid 算法題 body println 算法 ring swift java算法 package com.swift; public class Digui_Return { public static void main(String[] arg

DAY01 Generate Deployment Descriptor Stub沒有找到Linux 2命令

groups 更換 mic gpo pub ims indent java 阿裏雲 1. 創建後Maven 項目後,Generate Deployment Descriptor Stub 沒有看到入下圖所示 正確創建Maven 項目後如圖所示 其實他只是

標簽菜單欄點擊一個菜單顯示菜單小標題另外2菜單不現實小標題內容

meta ecc width ID 功能 font spl mar 顯示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

組中2元素的最小距離

開始 class 最新 null 同時存在 public util urn 語句 # 思路 : 當同時找到2個元素時才開始比較兩者之間的距離 使用最新的下標進行比較 import java.util.concurrent.atomic.AtomicInteger; //