首页 > 其他分享 >【Leetcode刷题记录】1、统计参与通信的服务器;2、统计二叉树中好节点的数目;3、从两个数字数组里生成最小数字

【Leetcode刷题记录】1、统计参与通信的服务器;2、统计二叉树中好节点的数目;3、从两个数字数组里生成最小数字

时间:2023-09-06 17:23:11浏览次数:48  
标签:node right 数字 val int res 二叉树 中好 服务器

1、统计参与通信的服务器

题目:这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。

如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。

请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

思路:二次遍历!第一次遍历统计服务器数量,同时新建两个数组,对每个位置的服务器,将该服务器对应的行和列数组 + 1 操作。第二次遍历遇到服务器,判断该服务器所在的行和列是不是仅有一个服务器,如果是,则结果 - 1。

代码:C++

 1 class Solution {
 2 public:
 3     int countServers(vector<vector<int>>& grid) {
 4         int m = grid.size();
 5         int n = grid[0].size();
 6         vector<int> row(m,0);
 7         vector<int> col(n,0);
 8         int cnt = 0;
 9         for(int i = 0; i < m; ++i){
10             for(int j = 0; j < n; ++j){
11                 if(grid[i][j] == 1){
12                     cnt++;
13                     row[i]++;
14                     col[j]++;
15                 }
16             }
17         }
18         for(int i = 0; i < m; ++i){
19             for(int j = 0; j < n; ++j){
20                 if(grid[i][j] == 1 && row[i] == 1 && col[j] == 1){
21                     cnt--;
22                 }
23             }
24         }
25         return cnt;
26     }
27 };

2、统计二叉树中好节点的数目

题目:给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。

「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。

思路:广度优先遍历!

代码:C++

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 8  *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 9  *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
10  * };
11  */
12 class Solution {
13 public:
14     int goodNodes(TreeNode* root) {
15         int res = 1;
16         queue<TreeNode*> que;
17         que.push(root);
18         while(!que.empty()){
19             TreeNode* node = que.front();
20             que.pop();
21             if(node->left){
22                 if(node->left->val >= node->val){
23                     res++;
24                 }
25                 node->left->val = max(node->val,node->left->val);
26                 que.push(node->left);
27             }
28             if(node->right){
29                 if(node->right->val >= node->val){
30                     res++;
31                 }
32                 node->right->val = max(node->val,node->right->val);
33                 que.push(node->right);
34             }
35         }
36         return res;
37     }
38 };

3、从两个数字数组里生成最小数字

题目:给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数组都 至少 包含这个数字的某个数位。

思路:模拟!

代码:C++

 1 class Solution {
 2 public:
 3     int minNumber(vector<int>& nums1, vector<int>& nums2) {
 4         int x = findmin(nums1);
 5         int y = findmin(nums2);
 6         int res = min(x * 10 + y, y * 10 + x);
 7         set<int> st;
 8         for(auto const& num : nums1){
 9             st.insert(num);
10         }
11         for(auto const& num : nums2){
12             if(st.find(num) != st.end()){
13                 res = min(res,num);
14             }
15         }
16         return res;
17     }   
18 private:
19     int findmin(vector<int>& nums){
20         int res = nums[0];
21         for(auto num : nums){
22             res = min(res,num);
23         }
24         return res;
25     }
26 };

标签:node,right,数字,val,int,res,二叉树,中好,服务器
From: https://www.cnblogs.com/Archigenius/p/17682878.html

相关文章

  • 机车整备场数字孪生 | 图扑智慧铁路
    机车整备场是铁路运输系统中的重要组成部分,它承担着机车的维修、保养和整备工作,对保障铁路运输的运维和安全起着至关重要的作用。随着铁路运输的发展、机车技术的不断进步,以及数字化转型的不断推进,数字孪生技术在机车整备场的应用越来越广泛。数字孪生三维可视化技术的应用为机车......
  • 数字信号处理 Digital Signal Processing
    通信、控制和信号处理导论IntroductionToCommunication,Control,AndSignalProcessing6.011|Spring2010|Undergraduate(本科生)课程描述本课程将信号、系统和推理作为通信、控制和信号处理的统一主题进行研究。课题包括由确定性和随机信号驱动的线性系统的输入输出和......
  • SQL 字符类型按数字顺序排序
    字符类型排序,直接用orderby字段asc的话,出来的结果,数字值时,不符合日常的排序习惯,如 如果想2排在1之后,10排在9之后,字符值得按字符ABC排序,可试试以下脚本  ......
  • 数字孪生和BIM/CIM
    相关概念BIM和CIM的教材:《BIM工作指南》、《CIM技术原理与应用》、《BIM与建筑设计》、《CIM与城市规划》、《BIM在建筑设计中的应用》、《BIM在结构设计中的应用》、《CIM在城市规划与管理中的应用》《新型智慧城市概论》、《新型智慧城市资源与规划》、《新型智慧城市设计与建......
  • 数字格式
    一、基础知识1.1说明以Excel和PowerBI的自定义数字为基准。   1.2 常用代码符号  二、演示2.1演示用的是PowerBI DEFINEVARN=123456789.123456--千位分隔样式,不保留小数VARN1=FORMAT(N,"#,0")--千位分隔样式,保......
  • 用navicat工具excel导入数据到Oracle数据库,数字类型的总是多加.0的问题怎么处理
    在使用Navicat工具将Excel数据导入Oracle数据库时,数字类型的总是多加一个.0的问题可能与数据类型映射有关。您可以尝试以下解决方法:检查Excel列的数据格式:确保Excel列中的数据是按照数字格式存储,而不是文本或其他格式。如果列的单元格格式为文本,则导入时Oracle可能将......
  • 代码随想录算法训练营第十四天|二叉树的递归法、迭代法
    二叉树的递归遍历(前中后序遍历-递归法与迭代法)递归三部曲:确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑递归法对二叉树进行前中后序遍历(力扣144.145.94.)//前序遍历·递归·LC144_二叉树的前序遍历classSolution{publicList<Integer>preorderTra......
  • 百望云入选2023数字新消费“财税法数字化最佳服务商榜”
    当下,数字经济正在以前所未有的速度和影响力,不断推动生产方式和生活方式发生深刻变革,企业常常要面对从未遇到的新挑战。新的技术革新赋能企业创新生产力,越来越多的企业已经开展了数字化实践,数字化转型成为企业发展的关键。近日,第一新声联合天眼查正式发布2023中国数字新消费系列榜单......
  • 使用 MYSQL 对列中特定范围的数字求和
    使用MySQL对列中特定范围的数字求和,可以使用SQL的SUM()函数结合WHERE子句来实现。以下是一个示例:SELECTSUM(column_name)ASsum_resultFROMtable_nameWHEREcolumn_name>=start_valueANDcolumn_name<=end_value;在上述代码中,将column_name替换为要计算求和的......
  • 找质数(图算法)、交错字符串(字符串、动态规划)、有效数字(字符串)
    找质数(图算法)找出大于200的最小的质数解答:importjava.util.*;importjava.lang.*;importjava.io.*;classIdeone{publicstaticvoidmain(String[]args)throwsjava.lang.Exception{intn=201;while(true){booleanb=tru......