將 x 減到 0 的最小運算元

2021-10-10 13:57:33 字數 868 閱讀 1194

給你乙個整數陣列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字...