我的刷題日記(16)

2021-09-27 18:54:18 字數 884 閱讀 5961

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王(一副牌原本是54張_)…他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!「紅心a,黑桃3,小王,大王,方片5」,「oh my god!」不是順子…ll不高興了,他想了想,決定大\小 王可以看成任何數字,並且a看作1,j為11,q為12,k為13。上面的5張牌就可以變成「1,2,3,4,5」(大小王分別看作2和4),「so lucky!」。ll決定去買體育彩票啦。 現在,要求你使用這幅牌模擬上面的過程,然後告訴我們ll的運氣如何, 如果牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認為大小王是0。

思路:找出陣列中0的個數

將陣列中的0去除,再將陣列進行公升序排序

比較下一項與此項的差值

一旦有乙個差值為0 false

差值等於1則不計

差值大於1,記錄需要兩項之間相差多少個連續數字count

然後用count與0的個數進行對比,大於零則false 否則 true

function iscontinuous(arr)

let countw = 0 ;

let countn = 0 ;

arr.sort((a,b) => a-b);

for(let i = 0 ; i < arr.length; i++)

}let arr1 = countw > 0 ? arr.slice(countw) : arr;

for(let j = 0;j1) else if(arr1[j+1] - arr1[j] === 0)

}if(countn > countw)

return true;

}

我的刷題日記(6)

題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。首先得清楚怎麼求乙個整數的二進位制?什麼是原碼,反碼,補碼?比如用四位的二進位制數表示1 則為0001 正數的原碼 第一位是0 符號位 表示正數0001 負數的原碼 第一位是1表示負數。1001 正數的 原碼 反碼 補碼 負...

我的刷題日記(9)

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。function nodelist x const arr1 1,2,3,4,5,6 鍊錶節點的值 function getnodelist arr const root new nodelist arr 0 let p root for let i 1 i...

我的刷題日記(12)

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。方法一 思路 先找出陣列中和等於sum的每一對,放在乙個陣列裡。比如 1,9 2,8 5,5 然後找出乘積最小的那一對 function findnumberswithsu...