亚马逊软开笔试思路分享8.27(1+9/11+1)
不让弹出窗口,没法复制代码,只能隔空聊了。
第1题
用map记录每个数字出现次数,取最大的即可。AC
第2题用DP,dp[i] = max(dp[i-1], dp[i-2] + i * count[i]),要么不取i,取i则要略过i-1,用dp[i-2]去加。不知道为什么11个test只过了9个,有人AC吗?
找到正确解法了,应该用二维dp,dp[i][0]代表不取,dp[i][1]代表取
第3题直接inorder traversal然后求和即可,难点在于树的输入:arr[i]的子节点是arr[2*i+1], arr[2*i+2]。AC