一个caigou的LeeCode日记
写写笔记
头发还多不慌
这个作者很懒,什么都没留下…
展开
-
Leetcode 997. 找到小镇的法官
思路:标记数组题目要求满足:1.所有人(除了自己)都要相信法官2.法官不能相信任何人根据题目要求,我们建立一个标记数组int[] book = new int[n+1];然后开始遍历,对于每一个数对,我们把相信别人的人标记为-1,因为他已经不符合条件,所以不可能是答案,然后再判断被相信的人,如果被相信的人的标记不为-1,那么就让他的标记加 1,最后被标记为 n-1 的人就是法官class Solution { public int findJudge(int n, int[][] t原创 2021-12-19 09:59:33 · 3627 阅读 · 0 评论 -
Leetcode 419. 甲板上的战舰
思路1:遍历数组并做标记看到这道题很容易就想到,用一个标记数组,将遍历过的符合条件的军舰标记,然后扫描一遍,统计答案class Solution { int cnt; int[][] book; public int countBattleships(char[][] board) { book = new int[board.length][board[0].length]; for(int i = 0; i < board.length;原创 2021-12-18 13:25:33 · 190 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器(缩减搜索范围)
思路:定义两个指针 left 和 right ,开始分别让他们指向数组的最左边和最右边,代表容器的最大边界,然后设left所指的值为x,right所指的指为y。假设下 x <= y 则当前容器体积为 v = min(x,y)×(right-left),即 x×(right-left),然后移动右指针到任意位置,这时右指针指向了y1。v1 = min(x,y1)×(right-left)当 y1 >= y 时,min(x,y1) = x,而 right-left 变小了,v1 < v原创 2021-11-17 15:32:27 · 268 阅读 · 0 评论 -
LeetCode 6. Z 字形变换
思路:题目要求我们将一个字符串变成一个z型矩阵然后按照层序输出,以题目样例举例字符串"PAYPALISHIRING" 转换为矩阵如下P I NA L S I GY A H RP I然后得到的答案是:"PINALSIGYAHRPI"第一个字符 ‘P’ 输出了之后,应该中间应该间隔 k = numRows*2-2 个字符,即6个字符,才能到下一个应该输出的字符 ‘I’ ,然后再到下一个字符又要间隔k个字符。但是到了第二行,由于还要计算z型矩阵斜边上的字符,所以原创 2021-11-16 22:33:17 · 4243 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
3. 无重复字符的最长子串class Solution { public int lengthOfLongestSubstring(String s) { Map<Character, Integer> map = new HashMap<>(); int beginIndex = 0; int maxLen = 0; for (int i = 0; i <= s.length(); i++) {原创 2021-11-12 21:04:28 · 3049 阅读 · 0 评论