获得徽章 18
- #每日一题# day8
题目:leetcode 463. 岛屿的周长
描述:给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。
网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。
岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。
语言:Go
解题思路:解题思路关键在于你能解读题意啥意思,双重for循环,直接破题,不清楚的可以看我写的。展开评论1 - #每日一题# day6
题目:leetcode 717. 1 比特与 2 比特字符
描述:有两种特殊字符:第一种字符可以用一比特 0 表示;第二种字符可以用两比特(10 或 11)表示。给你一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符,则返回 true 。
语言: Go
解题思路:从头到尾遍历数组,如果当前位置是 1,那说明 1 和它后面一位可以组成两个比特的字符,所以我们后跳两步;如果当前位置是 0,那么说明它是单个字符,我们需要向后跳 1 步;等到 i 的位置来到了数组的最后一个位置的时候,就说明最后一个字符是否必定为一个一比特字符,即满足题意。展开评论2 - #每日一题# day5
题目:leetcode 455. 分发饼干
描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
语言: java
解题思路:这题思路非常多,重点是要理解题意。我是用的排序+双指针法+贪心,尽可能满足更多的小孩,把小孩胃口从小到大排序,把可以满足这个小孩胃口的最小饼干分给它即可。展开评论2 - #每日一题# day4
题目:leetcode 1046. 最后一块石头的重量
描述:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。
假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:
如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。
语言: java
解题思路:直接暴力破解。遍历只要满足sum1-A[i]+B[j] ?= sum2-B[j]+A[i],如果满足条件返回A[i], B[j]即可,解题结束。展开评论2 - #每日一题# day3
题目:219. 存在重复元素 II
描述:给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。
语言: java
解题思路:哈希表法。从左往右遍历,通过定义一个HashMap从左到右遍历数组,遍历中判断当前元素是否满足(map.containsKey(num) && i - map.get(num) <= k ),如果不满足map插入当前num,否则返回true,解题结束。展开评论2
个人成就