范围内的重叠数字

范围内的重叠数字

通过javascript、Python和C确定重叠

Overlapping visualization

✨重叠定义:

重叠是指方程组中的一种特殊情况,其中两条线实际上直接位于彼此之上。
还记得在数学课上学习维恩图吗?要知道,两个圆圈是重叠绘制的,所以它们在中间共享一个空间。

**因此,我们可以说,如果我们有两块东西,一块覆盖另一块的一部分,那么它们就是重叠的。
** 现在,让我们解决一个我在技术面试中遇到的关于这个主题的问题:

问题:

您将获得一个数组 **5** 数字。这 前 2 个数字代表一个范围 , 和 接下来的两个数字代表另一个范围 .
数组中的最终数字是 **X** .
我们计划的目标 是确定两个范围是否至少重叠 **X** 数字。
例如,在数组中 **[5、12、3、8、3]** 范围 **5** **12** **** 是 [5、6、7、8、9、10、11、12]。

和范围 **3** **8**[ 3、4、5、6、7、8] .

它被重叠 **4** 数字,所以我们的程序应该返回 真的 .
**等等,为什么?
** 原因,示例数组中的最终数字 **X = 3** .
虽然我们发现我们的范围重叠 **4** 数字 **(5, 6, 7, 8)** ,以及给定数组中的最终数字 **X < 4** .这就是为什么我们的程序应该返回 **真的** .
让我们解决问题……

方法一:使用循环解决这个问题

 函数重叠范围(arr){  
 让计数器 = 0;  
 for (var i = arr[0]; i < arr[1]; i++) {  
  
 if (i >= arr[2] && i <= arr[3]) {  
 计数器++;  
 }  
 }  
 返回(计数器> = arr [4])?真假;  
 };  
 常量结果 = OverlappingRanges([5, 12, 3, 8, 3]);  
 控制台日志(结果)  
 **//输出:真**

解释:

**步骤1:** 在 counter 变量中,我们跟踪有多少数字重叠  
 **第2步:** 循环遍历范围之一  
  
 **第 3 步:** 检查第一个范围内的数字是否存在于第二个范围内  
 **第4步:** 检查重叠的数字是否等于或大于  
 比数组中的最后一个数字(我们定义为 x)  
 而已!

方法2:让我们不使用循环来解决问题:

假设给定的数组是 [8、20、6、15、6] .我们的函数应该返回 真的 也是。见下图:

 功能重叠(arr){ 让 range1 = listOfNumbers(arr[0], arr[1]);  
 让 range2 = listOfNumbers(arr[2], arr[3]);  
 让重叠计数 = 0; if(range1[0] >= range2[0] && range1[0] <= range2[1]){  
 重叠计数= range2[1] - range1[0] + 1;  
 } 别的 {  
 重叠计数 = range1[1] - range2[0] + 1;  
 }  
 if(overlappingCount >= arr[4]){  
 返回真;  
 }  
 }  
 函数 listOfNumbers(a, b){ 让开始=一个; 让结束 = b; 如果(a > b){  
 开始 = b;  
 结束=一个;  
 }  
 返回[a,b];  
 }; 常量 arr = [4, 10, 2, 6, 3];  
 console.log(重叠(arr)) **//输出:真**

Python代码示例:

 def 重叠(arr):  
 计数 = 0  
 对于范围内的 i(arr[0],arr[1]+1):  
 对于范围内的 j(arr[2],arr[3]+1):  
 如果我 == j:  
 计数 += 1  
 如果计数 >= arr[4]:  
 返回真  
 别的:  
 返回假  
 res = 重叠([8, 20, 6, 15, 6])  
 打印(分辨率)  
 #输出:真

C代码示例:

 #包括<stdio.h>  
 int 重叠(int arr[]){ 整数计数 = 0;  
 for (int i = arr[0]; i <= arr[1]; i++){  
 for (int j = arr[2]; j <= arr[3]; j++){ 如果(我 == j){  
 计数 += 1;  
 }  
 }  
 }  
 如果(计数 >= arr[4]){  
 返回 1;  
 }  
 别的 {  
 返回0;  
       
 }  
 };  
 //运行这个程序,看看输出

好了,今天就到这里。 我希望您发现本教程对您有所帮助。
本教程有任何问题吗?
我不介意你让我知道...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/33276/41031309

posted @ 2022-09-13 09:42  哈哈哈来了啊啊啊  阅读(120)  评论(0编辑  收藏  举报