美文网首页
算法和数据结构之小白(一)

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

作者: 羊驼驼驼驼 | 来源:发表于2020-03-23 23:30 被阅读0次
算法

前言

从今天开始准备踏上探索算法和数据结构之路~有感兴趣的童鞋可以一起参加哈
给大家推荐两种刷题方式
  • 网页:力扣
    力扣.png
  • 编辑器:vscode-leetcode


    vscode-leetcode.png
一、为啥要学习算法和数据结构呢?
  • 面试:面试官曾给出过这方面的题目,但是自己一脸懵圈,答不出所以然来
  • 源码:在日常学习中经常会涉及到一些优秀源码的学习(Vue,React..),需要夯实的基础支撑才能更好的理解
二、算法和数据结构的关系?

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

三、力扣第一题(两数之和)
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. 复杂度 [ 复杂度:(完成一件事件大概要多少空间,大概要多少时间)]
  • 暴力 数组长度为n 两层遍历大概执行次数n*n 时间复杂度 O(n²) 空间复杂度O(1)
  • 中间变量 (空间换时间) 一次循环 但是定义了res对象耗费了空间 时间复杂度O(n) 空间复杂度O(n)
第一题两数之和完成,大家如果有更好的思路和想法欢迎在下方评论写出,共同学习,共同进步,加油~
学习学习

相关文章

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

  • 02数据结构与算法复杂度分析上

    数据结构与算法之美专栏笔记 1. 为什么要学习数据结构和算法 数据结构和算法本身解决的是“快”和“省”的问题,让代...

  • 《漫画算法》读书笔记

    小灰(小白)的算法之旅 第一章 算法概述 1.1 算法和数据结构 算法(Algorithm):在数学领域用于解决...

  • 数据结构与算法之美-28讲堆和堆排序

    数据结构与算法之美-28讲堆和堆排序 特别备注 本系列非原创,文章原文摘自极客时间-数据结构算法之美[https:...

  • 数据结构之栈

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之队列

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之二分查找的概念

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之二叉树

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之二叉搜索树

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 二叉树的遍历(前序中序后序层序)

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

网友评论

      本文标题:算法和数据结构之小白(一)

      本文链接:https://www.haomeiwen.com/subject/vtxiyhtx.html