位元組題 雀魂啟動!

2021-10-09 20:50:02 字數 1134 閱讀 7983

雀魂啟動!_位元組跳動2019春招研發部分程式設計題彙總_牛客網

輸入是13個數字,統計每個數字出現的次數,根據題意,次數最大為4,而出現的數字種類在4~9之間,和牌方式有兩種,均需要乙個雀頭(2張一樣的牌作雀頭)。

分析一下,如果出現數字種類只有4種,那和牌的唯一方式就是乙個雀頭(2)+ 4個順子(12),因為乙個雀頭+4個刻子最少需要五種數字。而四種數字的分布可能是:

兩種情況都是1x2 + 3x4模式,而且這個3是連續的。

不過感覺以這種方式分析下去,很難,要討論五種、六種。。。

感覺應該是需要換乙個思路

如果有乙個數字只出現了一次,那麼它毫無疑問只能作為順子,那就去死吧。。。

碼半天分析不下去了,我去看別人的題解去了。

wo看好回來了,感覺也不是那麼難-_-,但是這種情景向的題型還是很難取理解的。

總體的判斷過程是乙個dfs的過程:

我加了注釋,應該是比較清晰的,而且**算是比較簡潔(去掉注釋。)

#include #include #include using namespace std;

bool ishu(vectornums)

if (cnt >= 3)

//首元素以順子的形式出現

//先判斷首元素+1和+2的元素是否存在,只有同時存在才有可能構成順子

if(count(nums.begin(), nums.end(), nums[0]+1) > 0 && count(nums.begin(), nums.end(), nums[0] + 2) > 0)

return false;

}int main()

sort(nums.begin(), nums.end());//先排序

for (int i = 1; i <= 9; ++i)

if (res.empty()) cout << 0 << endl;

else

return 0;

}

位元組跳動 雀魂啟動

小包最近迷上了一款叫做雀魂的麻將遊戲,但是這個遊戲規則太複雜,小包玩了幾個月了還是輸多贏少。於是生氣的小包根據遊戲簡化了一下規則發明了一種新的麻將,只留下一種花色,並且去除了一些特殊和牌方式 例如七對子等 具體的規則如下 例如 111 2226 6677 799 可以組成1,2 6,7的4個刻子和9...

b zj 雀魂啟動(分類討論的回溯)

給定13張牌,問加入1 9中的任意一張牌後,能否達成和牌 滿足以下兩個條件 思路 暴力刪除即可,更優的做法是使用計數來實現邏輯刪除 def dfs a if len a 2 and a 0 a 1 return 1 for i in range len a 4 if a i a i 4 統一種類的牌...

位元組題 多任務分配

程式設計題3 位元組跳動2018校招大資料方向 第一批 牛客網 這題的處理邏輯並不難,但是處理起來需要考慮的東西很多,實現起來是不容易的,需要維護的陣列較多。先明確題意 注意 程式設計師每次檢視的時候能看到的是每個pm最想完成的乙個idea 如果我們為每個pm維護乙個優先順序佇列的話,那麼程式設計師...