【Lintcode】1230. Assign Cookies
題目地址:
https://www.lintcode.com/problem/assign-cookies/description
給定兩個陣列, A A A代表若干小朋友的貪吃指數, B B B代表若干糖果的尺寸,一個小朋友如果吃了大於其貪吃指數的尺寸的糖果,則可以得到滿足。每個小朋友最多吃一個糖果。問最多能有多少小朋友得到滿足。
先將 A A A和 B B B都從小到大排序,然後優先用尺寸最小的糖果滿足貪心指數最小的小朋友,這樣的方案是使得被滿足的小朋友數量最多的方案。證明可以使用調整法,如果有哪個糖果沒有滿足貪吃指數最小的小朋友,那就做調換;同理,如果某個小朋友被尺寸太大的糖果滿足,那也可以做調整。程式碼如下:
import java.util.Arrays;
public class Solution {
/**
* @param g: children's greed factor
* @param s: cookie's size
* @return: the maximum number
*/
public int findContentChildren(int[] g, int[] s) {
// Write your code here
Arrays.sort(g);
Arrays.sort(s);
int res = 0, i = 0, j = 0;
while (i < g.length && j < s.length) {
// 找到尺寸最小的滿足g[i]的糖果
while (j < s.length && s[j] < g[i]) {
j++;
}
// 如果找不到則退出迴圈
if (j == s.length) {
break;
}
// 找到了,則滿足之
res++;
i++;
j++;
}
return res;
}
}
時間複雜度 O ( l A log l A + l B log l B ) O(l_A\log l_A+l_B\log l_B) O(lAloglA+lBloglB),空間 O ( 1 ) O(1) O(1)。
相關文章
- 【LeetCode】455. Assign Cookies 分發餅乾(Medium)(JAVA)每日一題LeetCodeCookieJava每日一題
- CookiesCookie
- [20210218]Select vs Assign – How To Assign PLSQL Variables.txtSQL
- location.assign()
- object.assignObject
- Another Intro for CookiesCookie
- Object.assign()方法Object
- C++:vector assignC++
- Sanic Cookies 讀寫Cookie
- 多域名共享 cookiesCookie
- Object.assign 模組Object
- Python Selenium如何操作CookiesPythonCookie
- [LintCode] Daily TemperaturesAI
- [LintCode] Permutation in String
- Object.assign()的痛點Object
- [20210920]bbed的assign命令.txt
- [20210304]bbed的assign命令.txt
- vue3-cookies元件使用VueCookie元件
- cookies sessionStorage和localstorage區別CookieSession
- 為爬蟲獲取登入cookies: 使用browsercookie從瀏覽器獲取cookies爬蟲Cookie瀏覽器
- [LintCode/LeetCode] Meeting RoomsLeetCodeOOM
- Lintcode 1263. Is Subsequence
- 【Lintcode】1189. Minesweeper
- Cypress系列(90)- Cypress.Cookies 命令詳解以及如何跨測試用例共享 CookiesCookie
- JS: Object.assign() Vs Spread OperatorJSObject
- jmeter通過cookies來登入JMeterCookie
- jmeter學習指南之管理CookiesJMeterCookie
- requests返回值cookies轉字典Cookie
- Request.Cookies使用方法分析Cookie
- [LeetCode/LintCode] Largest Palindrome ProductLeetCode
- [LintCode/LeetCode] Contains Duplicate IIILeetCodeAI
- [LintCode] Check Full Binary Tree
- [LintCode/LeetCode] Remove Duplicate LettersLeetCodeREM
- [LintCode] 3Sum Smaller
- 【Lintcode】1615. The Result of Investment
- [LintCode] Binary Tree Level Order
- 【Lintcode】1736. Throw Garbage
- 【Lintcode】1665. Calculate Number