编程新人,求助几道算法题的答案,来自coderbyte。
一
最远的节点
让功能FarthestNodes(strArr)读取strArr ,它将是表示这两个节点之间路径的连字符数组。例如:[“ ab”,“ bc”,“ bd”]表示存在从节点a到b(从b到a),从b到c以及从b到d的路径。您的程序应确定图中存在的最长路径,并返回该路径的长度。因此,对于上面的示例,由于路径abc和dbc ,您的程序应返回2。路径abc也表示存在路径cba。图中将不存在循环,并且每个节点都将连接到图中的其他某个节点。
例子
输入:[“ be”,“ bc”,“ cd”,“ ab”,“ ef”]
输出:4
输入:[“ ba”,“ ce”,“ bc”,“ dc”]
输出:3
二
位图孔
让函数BitmapHoles(strArr)接受存储在strArr中的字符串数组,这将是一个0和1的2D矩阵,并确定该矩阵中存在多少个孔或0的连续区域。连续区域是一个在四个方向(上,下,左或右)中的一个或多个方向上存在一组相连的0的区域。例如:如果strArr是[ “10111”, “10101”, “11101”, “11111”],那么这看起来像下面的矩阵:
1 0 1 1 1
1 0 1 0 1
1 1 1 0 1
1 1 1 1 1
对于上面的输入,您的程序应返回2因为有两个单独的0连续区域,它们在矩阵中产生“空洞”。您可以假设输入将不为空。
例子
输入:[“ 01111”,“ 01101”,“ 00011”,“ 11110”]
输出:3
输入:[“ 1011”,“ 0010”]
三
和乘数
让函数SumMultiplier(arr)获取存储在arr中的数字数组,如果可以将任意两个数字相乘,则 返回字符串true,以便答案大于数组中所有元素之和的两倍。如果不是,则返回字符串false。例如:如果arr为[ 2、5、6,-6、16、2、3、6、5、3],则所有这些元素的总和为42,将其加倍为84。数组中有两个元素,16 * 6 = 96并且96大于84,因此您的程序应返回字符串true。
例子
输入:[2、2、2、2、4、1]
输出:false
输入:[1、2、10、3、1、12]
输出:true
一
最远的节点
让功能FarthestNodes(strArr)读取strArr ,它将是表示这两个节点之间路径的连字符数组。例如:[“ ab”,“ bc”,“ bd”]表示存在从节点a到b(从b到a),从b到c以及从b到d的路径。您的程序应确定图中存在的最长路径,并返回该路径的长度。因此,对于上面的示例,由于路径abc和dbc ,您的程序应返回2。路径abc也表示存在路径cba。图中将不存在循环,并且每个节点都将连接到图中的其他某个节点。
例子
输入:[“ be”,“ bc”,“ cd”,“ ab”,“ ef”]
输出:4
输入:[“ ba”,“ ce”,“ bc”,“ dc”]
输出:3
二
位图孔
让函数BitmapHoles(strArr)接受存储在strArr中的字符串数组,这将是一个0和1的2D矩阵,并确定该矩阵中存在多少个孔或0的连续区域。连续区域是一个在四个方向(上,下,左或右)中的一个或多个方向上存在一组相连的0的区域。例如:如果strArr是[ “10111”, “10101”, “11101”, “11111”],那么这看起来像下面的矩阵:
1 0 1 1 1
1 0 1 0 1
1 1 1 0 1
1 1 1 1 1
对于上面的输入,您的程序应返回2因为有两个单独的0连续区域,它们在矩阵中产生“空洞”。您可以假设输入将不为空。
例子
输入:[“ 01111”,“ 01101”,“ 00011”,“ 11110”]
输出:3
输入:[“ 1011”,“ 0010”]
三
和乘数
让函数SumMultiplier(arr)获取存储在arr中的数字数组,如果可以将任意两个数字相乘,则 返回字符串true,以便答案大于数组中所有元素之和的两倍。如果不是,则返回字符串false。例如:如果arr为[ 2、5、6,-6、16、2、3、6、5、3],则所有这些元素的总和为42,将其加倍为84。数组中有两个元素,16 * 6 = 96并且96大于84,因此您的程序应返回字符串true。
例子
输入:[2、2、2、2、4、1]
输出:false
输入:[1、2、10、3、1、12]
输出:true