題目:
給定乙個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...