給你乙個整數陣列nums
和乙個整數x
。每一次操作時,你應當移除陣列nums
最左邊或最右邊的元素,然後從x
中減去該元素的值。請注意,需要修改陣列以供接下來的操作使用。
如果可以將x
恰好減到0
,返回最小運算元;否則,返回-1
。
示例 1:
輸入:nums = [1,1,4,2,3], x = 5輸出:2解釋:最佳解決方案是移除後兩個元素,將 x 減到 0 。bfs,超時
class solution
private int helper(int nums, int x, int left, int right)
}
可以考慮字首+hashmap,從結果的角度分析,最終結果形態肯定是左側取n個元素,右側取m個元素。那麼計算過程中,可以忽略掉單測元素的順序。則可以反向記錄所有右側元素的sum並放入map,value是次數。
在從左便利,計算取到左側k元素後,map中的右側sum是否可以滿足x=0.可以的話,即為答案
以下為參考leetcode他人答案
class solution
for (int i = 0; i < n; i++)
return ans == n + 1 ? -1 : ans;
}}
1657 將 x 減到 0 的最小運算元
題目描述 給你乙個整數陣列 nums 和乙個整數 x 每一次操作時,你應當移除陣列 nums 最左邊或最右邊的元素,然後從 x 中減去該元素的值。請注意,需要 修改 陣列以供接下來的操作使用。如果可以將 x 恰好 減到 0 返回 最小運算元 否則,返回 1 示例 1 輸入 nums 1,1,4,2,...
力扣 1658 將 x 減到 0 的最小運算元
題目描述 示例 1 輸入 nums 1 1,4 2,3 x 5輸出 2 解釋 最佳解決方案是移除後兩個元素,將 x 減到 0 示例 2 輸入 nums 5 6,7 8,9 x 4輸出 1示例 3 輸入 nums 3 2,20 1,1 3 x 10輸出 5 解釋 最佳解決方案是移除後三個元素和前兩個元...
關於0x0d與0x0a的ASCII。
今天發現乙個有趣的現象 在 ma 我用的版本是6.11 中作彙編時發現,0x0d與0x0a有著不同的作用。比如 dead for dream 在這個字串後只加上0x0d則得到 游標移到開頭的那個d下面,而沒有換行 再輸入字元的話,將原來的字元著改掉。在這個字串上只加上0x0a則得到 游標移到末尾m字...