当前位置:网站首页>Sword finger offer II 116 Number of provinces - spatial complexity O (n), time complexity O (n)
Sword finger offer II 116 Number of provinces - spatial complexity O (n), time complexity O (n)
2022-04-23 18:53:00 【Mr Gao】
The finger of the sword Offer II 116. Number of provinces
Yes n Cities , Some of them are connected to each other , Others are not connected . If the city a And the city b Direct connection , And the city b And the city c Direct connection , So the city a And the city c Indirectly connected .
Province It's a group of directly or indirectly connected cities , There are no other cities in the group that are not connected .
To give you one n x n Matrix isConnected , among isConnected[i][j] = 1 It means the first one i Two cities and j The two cities are directly connected , and isConnected[i][j] = 0 The two are not directly connected .
Back in the matrix Province The number of .
Example 1:

Input :isConnected = [[1,1,0],[1,1,0],[0,0,1]]
Output :2
Example 2:

Input :isConnected = [[1,0,0],[0,1,0],[0,0,1]]
Output :3
As follows: , Simple recursive method
void f2(int** isConnected, int n,int *r,int j){
int i;
r[j]=0;
for(i=0;i<n;i++){
if(isConnected[j][i]==1&&r[i]==1&&i!=j){
r[i]=0;
f2(isConnected,n,r,i);
}
}
}
void f(int** isConnected, int n,int *r,int *sum){
int i,j;
for(i=0;i<n;i++){
if(r[i]==1){
r[i]=0;
(*sum)++;
for(j=0;j<n;j++){
if(isConnected[i][j]==1&&r[j]==1&&i!=j){
f2(isConnected,n,r,j);
}
}
}
}
}
int findCircleNum(int** isConnected, int isConnectedSize, int* isConnectedColSize){
int n=isConnectedSize;
int *sum=(int *)malloc(sizeof(int));
int r[isConnectedSize];
int i;
for(i=0;i<n;i++){
r[i]=1;
}
*sum=0;
f(isConnected,n,r,sum);
return *sum;
}
版权声明
本文为[Mr Gao]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231851498735.html
边栏推荐
- Use of kotlin collaboration in the project
- Dynamically add and delete layouts
- Introduction to ROS learning notes (I)
- The type initializer for ‘Gdip‘ threw an exception
- Machine learning theory (7): kernel function kernels -- a way to help SVM realize nonlinear decision boundary
- 迁移学习进阶
- 22年字节跳动飞书人力套件三面面经
- iptables初探
- PyGame tank battle
- 使用晨曦记账本,分析某个时间段每个账户收支结余
猜你喜欢

MySQL学习第五弹——事务及其操作特性详解

ctfshow-web361(SSTI)

After opening the original normal project, the dependency package displays red and does not exist.

使用晨曦记账本,分析某个时间段每个账户收支结余

Résolution: cnpm: impossible de charger le fichier... Cnpm. PS1 parce que l'exécution de scripts est désactivée sur ce système

MVVM模型

iptables初探

Esp32 (UART ecoh) - serial port echo worm learning (2)

Simplified path (force buckle 71)

Teach you to quickly rename folder names in a few simple steps
随机推荐
Recyclerview control list item layout match_ Fundamental principle of parent attribute invalidation
ctfshow-web362(SSTI)
K210 serial communication
os_ authent_ Prefix
Druid SQL和Security在美团点评的实践
微搭低代码零基础入门课(第三课)
Seata handles distributed transactions
Usage of functions decode() and replace() in SQL
ESP32 LVGL8. 1 - label (style 14)
From technical system to business insight, the closing chapter of the practice of small and medium-sized R & D team structure
Iptables - L executes slowly
Eight bit binary multiplier VHDL
Simplified path (force buckle 71)
Excel intercept text
ESP32 LVGL8. 1 - img picture (IMG 20)
Introduction to ROS learning notes (II)
ESP32 LVGL8. 1 - roller rolling (roller 24)
ESP32 LVGL8. 1 - event (event 17)
机器学习实战 -朴素贝叶斯
Treatment of incomplete display of listview height