2哥 : 3妹,OpenAI的宮斗劇迎來了大結局!OpenAI宣布阿爾特曼復職CEO,董事會重組
3妹:啊?到底誰才是幕后操縱者啊,有咩有揪出來
2哥 : 也不是很清楚,據說在被開除的幾周前,前CEO曾譴責一位董事會成員合著的一篇批評了OpenAI在AI安全的努力卻稱贊了OpenAI對家安全措施的研究論文,認為來自董事會成員的任何批評都會造成很大負面影響。
3妹:不過這個收場還是蠻好的
2哥 : 是的,董事會改組,Quora CEO留任獨立董事,細節問題正在被合作解決。前總裁發文稱OpenAI會比以前更強大、更團結。
3妹:2哥,你都可以當解說員了,對整個事件解析的很好。說到解析,我們來做一個“HTML 實體解析器”的題目吧~
題目:
給你一個下標從 0 開始長度為 n 的整數數組 nums 和一個整數 target ,請你返回滿足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下標對 (i, j) 的數目。
示例 1:
輸入:nums = [-1,1,2,3,1], target = 2
輸出:3
解釋:總共有 3 個下標對滿足題目描述:
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = 0 < target
- (0, 2) ,0 < 2 且 nums[0] + nums[2] = 1 < target
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = 0 < target
注意 (0, 3) 不計入答案因為 nums[0] + nums[3] 不是嚴格小于 target 。
示例 2:
輸入:nums = [-6,2,5,-2,-7,-1,3], target = -2
輸出:10
解釋:總共有 10 個下標對滿足題目描述:
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = -4 < target
- (0, 3) ,0 < 3 且 nums[0] + nums[3] = -8 < target
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = -13 < target
- (0, 5) ,0 < 5 且 nums[0] + nums[5] = -7 < target
- (0, 6) ,0 < 6 且 nums[0] + nums[6] = -3 < target
- (1, 4) ,1 < 4 且 nums[1] + nums[4] = -5 < target
- (3, 4) ,3 < 4 且 nums[3] + nums[4] = -9 < target
- (3, 5) ,3 < 5 且 nums[3] + nums[5] = -3 < target
- (4, 5) ,4 < 5 且 nums[4] + nums[5] = -8 < target
- (4, 6) ,4 < 6 且 nums[4] + nums[6] = -4 < target
提示:
1 <= nums.length == n <= 50
-50 <= nums[i], target <= 50
思路:
枚舉,
根據意義要求,給定數字 tagret,找到所有滿足 j<i且 nums[i]+nums[j]<target,可以直接枚舉所有的下標對 (i,j),檢測該下標對對應的元素之和是否滿足小于等于 target 即可。
獲得授權,非商業轉載請注明出處。
java代碼:
class Solution {public int countPairs(List<Integer> nums, int target) {int ans = 0;int n = nums.size();for (int i = 0; i < n - 1; i++) {for (int j = i + 1; j < n; j++) {if (nums.get(i) + nums.get(j) < target) ans++;}}return ans;}
}