a 消失的數字
檔名 輸入檔案 輸出檔案 時間限制 空間限制
del.cpp/c/pas del.in del.out 1s 512mb
題目描述
現在,我的手上有 n 個數字,分別是 a 1 ,a 2 ,a 3 ,...,a n 。
我現在需要刪除其中的 k 個數字。當然我不希望隨隨便便刪除,我希望刪除 k
個數字之後,剩下的 n − k 個數中有最多的不同的數。
輸入格式
第一行兩個正整數 n 和 k,含義如題目描述。
接下來一行,有 n 個非負整數,分別是 a 1 到 a n 。
輸出格式
一共一行,乙個整數 ans,表示刪除了 k 個數字後最多的不同的數的個數。
樣例輸入
4 11 3 1 2
樣例輸出
3樣例解釋
如果刪去第乙個 1:
在[3,1,2]中有 3 個不同的數
如果刪去 3:
在[1,1,2]中有 2 個不同的數
如果刪去第二個 1:
在[1,3,2]中有 3 個不同的數
2如果刪去 2:
在[1,3,1]中有 1 個不同的數
資料範圍
對於 30% 的資料,n ≤ 10,a i ≤ 10。
對於 60% 的資料,n ≤ 100,a i ≤ 100。
對於 80% 的資料,n ≤ 10 5 ,a i ≤ 10 5 。
對於 100% 的資料,n ≤ 10 5 ,a i ≤ 10 9 。
木問題;
#include#include#include
#include
#include
#include
using
namespace
std;
intn,k;
int a[100009
];int
ans,sum;
intmain()
sum=1
;
for(int i=2;i<=n+1;i++)
else
}if(k>0
)
ans-=k;
cout
return0;
}
消失的數字
給定乙個陣列a,長度為n,保證1 a i n,找出1 n中所有未出現的數字,不使用額外空間且時間複雜度為o n 如果可以使用額外空間,我們會使用一塊額外空間來記錄某乙個數字是否出現過,遍歷一遍a來更新額外空間狀態,然後遍歷額外空間來獲得未出現的數字。現在不允許使用額外空間,我們可以不可以直接在陣列上...
消失的數字(高斯求和)
題目描述 電影 密室逃生 講述的是一群密室逃脫愛好者,被乙個 博士關在乙個布滿機關的密室中,密室逃脫愛好者們要想盡辦法逃出密室的故事。今天lzy也被抓起來丟到了一間密室裡,限定lzy 半小時內逃出去,否則他將被永遠困在密室當中。這間密室中,只有牆壁上寫著一大串密密麻麻的數字,這些數字是 0 n 中的...
找出陣列中消失的數字
思路 這裡我是用了常規做法,使用雜湊表來儲存陣列中元素,然後查詢出不存在的數字。但是違反了題目中不使用額外空間的要求。class solution for int i 1 i nums.length i return list 思路 由於題目中不能使用額外空間的設定,所以這裡精巧的將每個數字出現過的...