leetcode—哈希表(easy)—3/25

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;

猜你喜欢

转载自blog.csdn.net/qq_40769893/article/details/88800731