乙個堆積木的演算法題,比較有意思,歡迎大家討論

2021-08-29 09:26:45 字數 789 閱讀 2909

問題的**是幫乙個朋友改資料庫,要求是這樣的,60個題目,總分是100分,正確答案的分值有2分的 1.5分,其中分值的排列關係是隨機的,請問如何設定答對題目,使得答題總分剛好為乙個數值,如82分

我的解決辦法是:

用乙個集合記錄判斷是正確的2分題,當發現期望總分和當前累加總分差值小於1.5時,因為最小單位是1.5,在2分集合中退出乙個正確的2分,然後繼續遍歷下去

雖然後來用上面辦法解決了這個問題,但是我覺得這個問題的解法不夠通用,有很多問題,對這個問題擴充套件了一下,大家一起討論一下

一維的:和上面的題目一樣。用變數來描述一下這個問題

有m個元素,其中每個元素有1個value值,o,value的取值有x,y,z...,按照value值m個元素排列是隨機的,問如何用一次遍歷m,而得到n個元素,這n個元素的value總和是w

二維的:其實就是俄羅斯方塊了,大家想象我們玩的俄羅斯方塊是不是這個道理

有m個元素,其中每個元素有1個value值對,o,value的取值有x,y,z...,按照value值m個元素排列是隨機的,問如何用一次遍歷m,而得到n個元素,這n個元素的value中,v1

的總和乘以v2的總和是w

n維的:不知道用什麼現實中的情況來描述了

有m個元素,其中每個元素有1個value值對,o,value的取值有x,y,z...,按照value值m個元素排列是隨機的,問如何用一次遍歷m,而得到n個元素,這n個元素的value中,v1

的總和乘以v2的總和乘以v3的總和...一直乘到vn的總和是w

呵呵,也許是我孤陋寡聞,上面這個題可能早有演算法了,希望知道的朋友能告訴我一聲:)

一些比較有意思的題目

example 輸入 698592 k 4 輸出 6592 solution 一種比較常見的思路是列舉全部k 4的數字,然後再取最小值,然而這樣複雜度會很高。本文的思路是不斷遞迴求得最小值,注意邊界,可以顯著降低複雜度。void find min core vector vec,int k,int ...

準備面試過程中遇到比較有意思的乙個題

對於單例類,大家應該不陌生吧,但是要用好,還是要資訊一些,否則出現記憶體洩漏都弄不明白為什麼。題目是這樣的 手寫單例模式 剛入it行業的人多半會以為人家考察的是你對設計模式的理解,其實別人還有另一層深意。如果只是這樣寫 class singleton return instance private ...

乙個有意思的問題

a b這個表示式如何理解?應該理解成a b還是a b,還是a b呢?應該按第一種方式理解。編譯的過程分為詞法解析和 語法解析兩個階段,在詞法解析階段,編譯器總是從前到後找最長的合法token。把這個表 達式從前到後解析,變數名a是乙個token,a後 面有兩個以上的 號,在c語言中乙個 號是合法的t...