首页 > 其他分享 >看代码的技巧 要将线性的代码转换成结构性的代码

看代码的技巧 要将线性的代码转换成结构性的代码

时间:2022-10-24 20:14:31浏览次数:83  
标签:转换成 third nums 代码 number second fourth 线性 first

  1. 函数中代码的结构,三个循环结构嵌套一个分支结构
  2. 就是我们在看分支结构的时候,习惯了将分支结构看成一个线性的结构,也就是顺序结构,虽然执行顺序上类似线性结构,但是我们在看代码的要将其看成分支结构,如下图高亮的三个代码部分,三个高亮部分可以理解成三个并行的结构,打个比喻,一条河流走到这里,然后分成三条支流,类似一个倒着的的三叉戟结构.

function fourSum(nums: number[], target: number): number[][] {
  // 对数组进行从小到大的排序
  nums.sort((a, b) => a - b);
  // 四个指针
  let first: number = 0,
    second: number,
    third: number,
    fourth: number;

  let length: number = nums.length;
  let resArr: number[][] = [];

  // 第一个指针从开始遍历到最后
  for (; first < length; first++) {

    for (second = first + 1; second < length; second++) {

      third = second + 1;
      fourth = length - 1;

      while (third < fourth) {
        let total: number =
          nums[first] + nums[second] + nums[third] + nums[fourth];

        if (total === target) {
          resArr.push([nums[first], nums[second], nums[third], nums[fourth]]);
          third++;
          fourth--;

                                                                               } else if (total < target) {
                                                                                    third++;
																					
                                                                                                              } else {
                                                                                                                  fourth--;
                                                                                                              }
      }
    }
  }
  return resArr;
}

标签:转换成,third,nums,代码,number,second,fourth,线性,first
From: https://www.cnblogs.com/zhuoss/p/16822492.html

相关文章

  • c语言冒泡排序法代码(c语言冒泡排序法代码讲解)
    求一个C语言冒泡排序法的简单程序怎么办?  下一趟排序开始时,R[1。。lastExchange-1]是有序区,R[lastExchange。。n]是无序区。这样,一趟排序可能使当前有序区扩充多个记录,从......
  • csv文件转换成excel(csv文件转换成excel逗号)
    docx文件-docx文件怎么转换成CSV(*?docx文件怎么转换成CSV(后缀名更改!Excel表格转换成CSV格式文档,不成功我想用Excel表格转可能是你自己建的csv文件标题或格式不正确。你可以......
  • c语言小游戏(c语言小游戏代码飞机大战)
    怎样用C语言编写一个小游戏?“贪吃蛇”C代码:#include#include#include#include#include#defineW78 //游戏框的宽,x轴#defineH26 //游......
  • c语言helloworld代码(c语言helloworld代码编写)
    C语言:求代码#includeintmain()inta,b,c,d,t,max,min;printf("Enterfourintegers:");scanf("%d%d%d%d",&a,&b,&c,&d);if(ad)min=d;printf("Largest:%d\nS......
  • LeaRun低代码开发平台 助推物联网应用快速落地
    当前,物联网技术正在推动人类社会从“信息化”向“智能化”转变,促进信息科技与产业发生巨大变化。但目前的实际情况来看,物联网的终端设备类型多、数量大,安装运维成本高、工......
  • 致敬!用代码改变世界的英雄
    10月24日是中国程序员日,该节日的起源是由博客园在2010年9月份的时候在论坛上的发起的一个投票选出的。而此次投票的缘由是一条新闻“今天是程序员节”,俄罗斯把每年的第256(......
  • 从零开始配置vim(28)——代码的编译、运行与调试
    在前面几个章节,我们逐渐为Vim配置了语法高亮、代码的跳转和自动补全功能。现在的Vim已经可以作为代码编辑器来使用了。但是想将它作为日常发开的主力编辑器来用还需要......
  • 低代码平台 - 危险的赌注
    低代码应用平台(LCAP-LowCodeApplicationPlatforms)在多样、复杂的现代软件开发情势下应运而生。根据Gartner的数据,Mendix 是这方面的翘楚,但其实类似的分析也适用于......
  • 冗余代码检查工具Simian
    Simian这个冗余代码检查工具,目前的版本是2.2.24,不光是c#代码,它也可以用来检查C,C++,COBOL,Ruby,JSP,ASP,HTML,XML,VisualBasic等格式的代码。s......
  • Apache Struts2远程代码执行【S2-001】
    Struts2Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是St......