leetcode (Ransom Note)
阿新 • • 發佈:2018-12-23
Title:Ransom Note 383
Difficulty:Easy
原題leetcode地址:https://leetcode.com/problems/ransom-note/
1. 註解見程式碼中註釋
時間複雜度:O(n),三次一層for迴圈,最長遍歷最長字串。
空間複雜度:O(n),申請256個長度陣列。
/** * 申請一個數組存放字元的個數,magazine出現加加,ransomNote出現減減,最後只要陣列中出現小於0的數,則為false,否則為True * @param ransomNote * @param magazine * @return */ public static boolean canConstruct(String ransomNote, String magazine) { if (ransomNote.length() == 0) { return true; } if (magazine.length() == 0) { return false; } int count[] = new int[256]; for (int i = 0; i < magazine.length(); i++) { count[magazine.charAt(i)]++; } for (int i = 0; i < ransomNote.length(); i++) { count[ransomNote.charAt(i)]--; } for (int e : count) { if (e < 0) { return false; } } return true; }