LeetcodeLCR 116. 省份数量

题目

在这里插入图片描述

原题链接

LCR 116. 省份数量

思路

利用并查集的思想,将连接的诚实放在一个集合当中,最后遍历并查集数组判断有几颗树

  • 初始化一个并查集;
  • 将连通的城市合并;
  • 统计并查集中树的个数;

C++代码

class Solution 
{
public:
    int findCircleNum(vector<vector<int>>& isConnected) 
    {
        // 初始化并查集
        vector<int> ufs(isConnected.size(), -1); 
    
        auto findRoot = [&ufs](int x)
        {
            int parent = x;
            while (ufs[parent] >= 0) 
                parent = ufs[parent];

            return parent;
        };

        for(int i = 0; i < isConnected.size(); i++)
            for(int j = 0; j < isConnected[0].size(); j++)
            {
                // 是否连通
                if(isConnected[i][j] == 1)
                {
                    int root1 = findRoot(i);
                    int root2 = findRoot(j);
                    // 合并
                    if (root1 != root2) 
                    {
                        ufs[root1] += ufs[root2];
                        ufs[root2] = root1; 
                    }
                }
            }

        // 统计并查集中集合的个数
        int n = 0;
        for (const int& e : ufs) 
        {
            if (e < 0)
                n++;
        }
        return n;
    }
};
通过调用wx.getLocation接口获取的是用户的经纬度信息,而不是直接获取省份信息。要获取省份信息,需要借助于微信小程序JavaScript SDK对返回的经纬度信息进行解析。可以使用逆地理编码的方式将经纬度转换为具体的地址,包括国家、省份、城市等信息。具体的步骤如下: 1. 在页面加载完成后,先获取用户的授权列表,并判断是否具有获取位置信息的权限(scope.userLocation)。如果有权限,直接调用wx.getLocation方法获取用户的经纬度位置。 2. 将获取到的经纬度位置传递给一个自定义的方法,比如getAddress方法。在这个方法中,可以使用逆地理编码的方式将经纬度转换为实际的地址信息。 3. 如果用户没有授权获取位置信息的权限,可以使用wx.openSetting接口打开权限设置界面,引导用户进行二次授权。当授权成功后,再次执行wx.getLocation方法来获取用户的经纬度位置。 4. 在getAddress方法中,可以使用逆地理编码的API,将经纬度位置解析为具体的地址信息,包括省份信息。 需要注意的是,获取位置信息需要用户的授权,所以在代码中需要进行相应的判断和处理。同时,在app.json文件中也需要配置相应的权限描述,以便向用户说明使用位置信息的目的。 综上所述,使用wx.getLocation接口获取省份信息的具体步骤如下: 1. 在页面加载完成后,先获取用户授权列表并判断是否具有获取位置信息的权限。 2. 如果有权限,调用wx.getLocation方法获取用户的经纬度位置。 3. 将获取到的经纬度位置传递给一个自定义的方法,使用逆地理编码的方式将经纬度转换为实际的地址信息。 4. 如果没有权限,使用wx.openSetting接口打开权限设置界面,引导用户进行二次授权。 5. 在授权成功后,再次执行wx.getLocation方法获取用户的经纬度位置。 6. 在自定义的方法中,使用逆地理编码的API将经纬度位置解析为具体的地址信息,包括省份信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值