【Day 06】LeetCode:Two Sum ( 用 JavaScript 学演算法 )

我们继续透过 LeetCode #1 Two Sum 来实际感受解决问题的过程 ( 题目连结 )

一、理解题目

  • 输入:一个 nums[] 和 target
  • 找出 nums 里哪两个数字相加会等於 target
  • 输出:回传一个阵列,纪录该两个值的位置

二、Edge Case

  • 值是否有负数 ? (不会)
  • 阵列长度是否会小於 2 ? (不会)
  • 会没有答案或有 2 个以上吗 ? (不会)

三、题目思考

使用哪种资料结构:Array

  1. 使用回圈遍历 nums,i
  2. 使用第二个回圈遍历 nums,j
  3. 判断数字相加是否等於 target

逻辑:

let len be the length of nums
let total be 0

for i (0 to len-1) do
  for j (i+1 to len) do
    total = nums[i] + nums[j]
    if (total = target) than
      return [i,j]
    end if
  end for
end for

程序码实作:

  const len = nums.length;
  let total = 0;
  
  for (let i=0 ; i<len-1 ; i++) {
    
    for (let j=i+1 ; j<len ; j++) {
      total = nums[i] + nums[j];
      if (target === total) {
        return [i, j]
      }
    }
  }

原文连结:LeetCode:Two Sum ( 用 JavaScript 学演算法 ) - Ted's Point 泰德观点


<<:  [Day8] Docker 介绍

>>:  Day 7:Prometheus

Day29|常见的三种工作流程 - Git flow、GitHub Flow 与 Gitlab Flow

在制作专案时,大多都是与他人共同协作,当一起开发的人越来越多时,就更需要有一套规则或模式来进行合作,...

[Java Day24] 6.1. 继承

教材网址 https://coding104.blogspot.com/2021/06/java-i...

TOGAF架构框架

TOGAF由国际标准权威组织The Open Group制定。The Open Group於1993...

SPML用於将跨资讯系统之创建和管理实体和属性的过程自动化

在一个电信行业的技术词汇,它是指为了向用户提供(新)服务的准备和安装一个网络的处理过程。它也包括改变...

day30: 完赛了,做个总结吧

今天终於来到终点拉! 前几届参加一直半途而废的我,这次因为有大团队的组队, 不管是激励或压力,都促使...