不积跬步,无以至千里;不积小流,无以成江海
时间:2020-6-17 地址:https://leetcode.cn/contest/weekly-contest-298 讨论:
A: 兼具大小写的最好英文字母
思路:字符串统计
关键点:字符串与ASCII 字符编码相互转换
function greatestLetter(s: string): string {let couter = new Array(128).fill(false);for (let char of s) {couter[char.charCodeAt(0)] = true;}for (let i = 90; i >= 65; i--) {if (couter[i] && couter[i + 32]) return String.fromCharCode(i);}return '';};
总结:
B: 个位数字为 K 的整数之和
思路:数学问题
关键点:
function minimumNumbers(num: number, k: number): number {if (!num) return 0;let digit = num % 10;for (let i = 1; i < 11; i++) {let target = i * k;if (target <= num && target % 10 == digit) return i;}return -1;};
总结:
C: 小于等于 K 的最长二进制子序列
思路:贪心
关键点:贪心
function longestSubsequence(s: string, k: number): number {let numStr = '';const n = s.length, m = s.split('').reduce((a, c) => a + Number(c), 0);for (let i = n - 1; i >= 0; i--) {const cur = s.charAt(i).concat(numStr);if (parseInt(cur, 2) > k) break;numStr = cur;}return n - m + numStr.split('').reduce((a, c) => a + Number(c), 0);};
总结:
D:
思路:
关键点:
总结:
复盘

A: a - A = 32 = 26 + 6 ✅ 细节有耗时
B: ❌ 边界错误 [0, 9) 正确边界 [1, 11)
C:
D:
