給定乙個N位數,得到乙個N k位的數中最小的數

2022-08-11 16:51:14 字數 638 閱讀 7794

題目:

給定乙個n位數,例如12345,從裡面去掉k個數字,得到乙個n-k位的數,

例如去掉2,4,得到135,去掉1,5,得到234。設計演算法,求出所有得到的

n-k位數裡面最小的那乙個

解決方案一:

(1)第一步要確定剩餘n-k位的數的最高位:

從個位開始算起,從第n-k位開始向高位比較,求出最小數字,作為高位。

例如,3 1 1 2 3 3 1,k=3時,從7-3=4開始(為2),向上比較發現,1更小,所以高位設定為1,記錄此時位置p1(等於也可以替換,從而取最高位的1).

(2)再確定次高位:

從n-k-1開始向上到p1-1,此時最小數字為1.

依此類推,最後就可以得到最小數1121.

解決方案二:

例如,1 2 3 4 5 6 7, k=3

剩餘n-k位,則定義乙個n-k的陣列r,用來存放所選數字。

(1)初始化r,存最低n-k位 4567

(2)向上遇到1,則3此時需要對r進行調整,調整規則如下,如果高位數字小於相鄰低位數字,則用高位數字替換之。

最高位再用當前數字替換。

於是,得到3456.

不斷執行以上過程,就得到了最終結果1234.

對方案一中舉例進行驗證,正確。

得到乙個2 N數

給定乙個數,使其轉換為2的冪的形式,而轉換後的資料大於或等於原始資料。這裡給出兩種方式 窮舉和位運算,而後者的效率好於前者。只要知道 2的冪的形式的2進製形式就可以了,1 1 2 1 0,2 10 2 1 1,4 100 2 1 2.64 1000000 2 1 6 從而若乙個數的二進位制中,只有乙...

由乙個矩陣得到乙個掩模矩陣

1.假設有乙個不完整的資料,如下 2030251 51830 317810 0232930112 1815 0import pandas as pd import numpy as np read data data pd.read csv data.csv a np.isnan data get ...

得到乙個空值

也許你感覺到製造乙個空值 null 是乙個不值一提的話題 看看以下 1public class check 支票 2check的例項在沒有給signing和money賦值前,signing和money是什麼值呢?輸出勝於雄辯 1checkcheck new check 2system.console...