算法和数据结构之小白(一)

2020-03-23  本文已影响0人  羊驼驼驼驼
算法

前言

从今天开始准备踏上探索算法和数据结构之路~有感兴趣的童鞋可以一起参加哈
给大家推荐两种刷题方式
一、为啥要学习算法和数据结构呢?
二、算法和数据结构的关系?

算法和数据结构是相辅相成的关系,算法是为了解决某一个问题提出来的解法,数据结构是为了支撑这次解法所提供的一种存储结构,数据结构包括数组、栈(先入后出)、队列(先入先出)、字符串、堆、哈希表、集合...很多很多,但是核心的数据结构只有两种数组链表,算法包括排序、搜索查找、递归...等等,接下来我们就打开算法小白的第一道题目(两数之和

三、力扣第一题(两数之和)
1. 题目
题目.png
2. 思路

外层循环套内层循环,挨个相加看能不能等于目标对象

  1. 遍历到第一个数字 2 缺少7
  2. 遍历到第二个数字 7 缺少2
    正好遍历到第二个数字就找到了,并不需要两层循环
3. 解法
var twoSum = function(nums, target) {
    for(let i = 0;i<nums.length;i++) {
        for(let j = 0;j<nums.length;j++) {
            if(nums[i] + nums[j] === target && i !== j) {
                return[i,j]
            }
        }
    }
};
点击提交记录里的通过我们可以看一下我们用了多少时间和空间
两层循环.png
var twoSum = function(nums, target) {
   let res = {} //需要什么样的对象,需要告诉res
   for(let i = 0;i<nums.length;i++) {
       let num = nums[i]
       // 看看有没有符合你条件的
        if(num in res) {
            // 找到了
            return [res[num],i]
        } else {
            res[target-num] = i
        }
   }
};
中间变量.png
4. 复杂度 [ 复杂度:(完成一件事件大概要多少空间,大概要多少时间)]
第一题两数之和完成,大家如果有更好的思路和想法欢迎在下方评论写出,共同学习,共同进步,加油~
学习学习
上一篇下一篇

猜你喜欢

热点阅读