原创 網易互娛9.27號19點研發崗筆試題解

一共四道編程. 前兩道比較簡單就不說了, 主要講講3,4道. 第三題: 開心消消樂 就是給你個M*N的二維矩陣, 每個塊有一個顏色, 如果它的四周有相同的顏色那麼就是連在一起的, 每次點擊一個色塊(要能點擊消除儘量多的, 如果有數

原创 LeetCode 1,167, 15, 18 (2, 3, 4)數之和相關問題

傳送門1 這類題都是給定個類似 a + b + … = x, 問有方案數. 我們對於這種都用拆分的思想, 然後用小的去解決大的, 首先我們說2 sum. 我們對n個數先排序, 然後兩個指針, 一個開頭,一個結尾, 然後往中間動,

原创 LeetCode 560 Subarray Sum Equals K【前綴和】

傳送門 題意: 有多少個連續子序列和爲給定的k, 思路: 連續, 就要想到前綴和, 所以我們利用前綴和的性質, 相減等於中間的和, 那麼直接記錄每個前綴的次數, 然後累加即可, 注意這類問題 0 這個數都是會作爲默認點加的! 不要

原创 LeetCode 4 Median of Two Sorted Arrays【經典題目】

傳送門 題意: 給定兩個有序數組, 要求在O(log(m+n))的複雜度之內求出合併後的中位數 思路: 數據水,線性的也能過. 但是面試遇到就不一定能過了. 所以還是得想正解. 有個log,所以我們用二分來做, 具體做法就是每次算

原创 Codeforces #251 D題 Devu and his Brother 【三分】

傳送門 題意: 給定一個長度爲n的a數組, 和一個長度爲m的b數組, 每次可以選任意一個數組的任意一個元素, 讓它+ or - 1, 問最少執行多少步,可以使得a數組的最小值 >= b數組的最大值. 思路: 很明顯, 我們需要找到

原创 阿拉伯數字金額轉中文大寫金額 base C++

背景: 這是美團9月11號下午15點的筆試編程題第一題, 當時是可以寫,但是時間真的不多,然後思緒變得混亂, 然後私下來把它寫了, 還是比較考代碼力的… 描述: 就給定很多數字金額 最大不過1000000000000(一萬億元整)

原创 LeetCode #4 尋找兩個有序數組的中位數

傳送門 題意: 給定兩個有序數組, 求中位數 思路: 中位數實際上就是找中間那最多兩個數, 然後兩個數組又是有序的, 所以可以轉換成求兩個有序數組合並後的第k大問題, 所以我們需要有一個函數求 對於兩個有序數組求第k大, 那麼如何

原创 LeetCode 342 4的冪

傳送門 題意: 就是判斷一個數是不是4的冪 思路: 2的冪已經寫爛了, 4的冪的話也是在2的冪的基礎上考慮的, 首先要保證是2的冪,然後觀察4的冪的性質, 發現2進制的1一定在奇數位上, 那麼我們需要一個用來驗證奇數位上1的數字, 那

原创 LeetCode 124 Binary Tree Maximum Path Sum

傳送門 題意: 跟定一顆帶點權二叉樹, 問其任意一條路徑的最大值是多少.(路徑, 任意一點出發和結束的路徑) 思路: 其實就兩種情況, 一是左右子樹加上本身結點構成一條路, 二是將自己和左右子樹更優的連接起傳給父親結點成路. 所有的情

原创 LeetCode 137 只出現了一次的數組||

傳送門 題意: 只有一個數字出現了一次, 其餘數字都出現了三次. 問一次的那個數字是多少. 思路: 相信2次的已經做爛了, 那麼這道改編的了? 一個二進制位只能表示0或者1。也就是天生可以記錄一個數出現了一次還是兩次。 x ^ 0 =

原创 LeetCode 995 Minimum Number of K Consecutive Bit Flips【思維】

傳送門 題意: 給定一個長度爲n的01數組, 每次可以將連續的k位翻轉(o -> 1, 1 - > 0), 問能否將整個數字變成全1,能的話最少翻轉多少次. 思路: 很明顯可以分析出的是, 一但遇到0了,那麼一定要翻轉, 並且以後都不

原创 HDU 6446 Tree and Permutation【思維】好題!

傳送門 題意: 給定一個n, 那麼1-n是一個排列, 定義某個排列(x y z)的值爲x - y, x - z在樹上的最短距離和, 求這個排列的全排列的值相加等於多少, 樹的形態會給出. 思路: 算邊的貢獻, 首先對於任意一個排列,

原创 LeetCode 810 Chalkboard XOR Game【思維】

傳送門 題意: 給定n個數, 兩個人輪流上去刪除一個數字, 如果在某個人刪除後, 剩下的數字異或等於0,那麼這個人就輸了, Alice 先手, 如果它能贏return TRUE. 思路: 考思維, 首先全部數字異或等於0需要二進制的每

原创 LeetCode 834 Sum of Distances in Tree

傳送門 題意: 給定一棵樹, 輸出每個點到其他點的距離之和. 思路: 首先我們先dfs一遍, 存下每個點的子節點數(包括自己), 和一個值稱dp, dp[u] 表示u的所有子節點到u的距離之和, 那麼很容易也可以在第一次dfs中維護,

原创 西北大學校賽B題 北境之都 【三分】

傳送門 題意: 給定n座房子的高度, 要求任意兩座房子的高度差在m以內, 每個房子只能改變一次高度,將一個房子的高度改變k米的花費是k^2萬元,求最低要花費多少萬元 思路: 很明顯, 將一個房子的高度放在過高或者過低的都是不最優, 而