1.岛屿的周长
给定一个包含0和1的二位网格地图,其中1表示陆地,0表示水域。
网格中的格子水平和垂直方向相连(对角线方向不想连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。
岛屿中没有 “湖”(“湖”指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为1的正方形。网格为长方形,且宽度和高度均不超过100。计算这个岛屿的周长。
思路:判断1周围有几个1
2.键盘行
给定一个单词列表,只返回可以使用在键盘同一行打印出来的单词。
3.分糖果
给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。
4.最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。
int findLHS(vector<int>& nums) {
unordered_map<int,int> mp;
int res = 0;
for(int i = 0; i < nums.size(); i++)
{
if(mp.count(nums[i]) == 0)
{
mp[nums[i]] = 1;
}
else
{
mp[nums[i]]++;
}
}
for(unordered_map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
{
if(mp.count(it -> first + 1) != 0)
{
res = max(res, mp[it -> first] + mp[it -> first + 1]);
}
}
return res;