美文网首页
左耳听风-ARTS-第 1 周

左耳听风-ARTS-第 1 周

作者: 这里有颗小螺帽 | 来源:发表于2019-08-25 23:28 被阅读0次

ARTS 是耗子叔发起的一个活动

A(Alogarithm):每周至少做一个 leetcode 算法题
R(Review):阅读并点评至少一篇英文技术文章
T(Tip):学习至少一个技术技巧
S(Share):分享一篇有观点和思考的技术文章

Alogarithm

leetcode 第1题:

题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

题目:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解答:
编辑器:VS code
编程语言:C++
先用一般暴力求解的方法来做:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int sum;
        vector<int>targetArr;
        //初始化 targetArr 为[-1,-1]
        targetArr.push_back(-1);
        targetArr.push_back(-1);
        for(int i = 0; i < nums.size(); i++)
            for(int j = (i+1); j < nums.size(); j++)
            {
                sum = nums[i] + nums[j];
                if (sum == target)
                {
                   targetArr.clear();//清除 targetArr 内元素
                   targetArr.push_back(i);//在  targetArr 尾部添加值 I
                   targetArr.push_back(j);
                   return  targetArr;
                }
            }
    return targetArr;
    }
};

这种方法的计算时间稍慢,因为时间复杂度为O(n^2),为了缩短一下计算时间,下面用 哈希表 的方法改写一下。

class Solution {
public:
   vector<int> twoSum(vector<int>& nums, int target) {
       vector<int>targetArr;
       targetArr.push_back(-1);
       targetArr.push_back(-1);
       map<int,int>hashTable;
   
      int findValue;
      for(int i = 0; i < nums.size(); i++)
       {
          findValue = target - nums[i];
          if(hashTable.find(findValue) != hashTable.end())//hashTable.find(findValue) 返回的是被查找元素的位置
          {
              targetArr.clear();//清除 targetArr 内元素
              targetArr.push_back(hashTable[findValue]);//在  targetArr 尾部添加值 I
              targetArr.push_back(i);
              return targetArr;
           }   
          hashTable[nums[i]] = i;
       }
       
   return targetArr;
   }
};

其实还有其他解答方法,这里就不一一列举了。

Review

《The Illustrated Transformer》
这篇文章用图形化的方式详细介绍了 Transformer 这个模型,Transformer 最初是在 attention is all you need 这篇 Google 论文中提出来的, The Illustrated Transformer 让理解 Transformer 模型变得更简单,下面贴一张文中的图片。

multi-headed self-attention

Tips

linux 中的 tail 命令
tail 主要是用来查看文章中的内容
命令格式:tail [参数] [文件名]
参数:

  • -f 把文件里的最尾部的内容显示在屏幕上,并且不断刷新
  • -n <行数> 显示文件的尾部 n 行内容
  • -c <数目> 显示文件最后的字节数

实操:


tail -n.jpg
tail -c.jpg

Share

本周没有分享技术文章

相关文章

  • 左耳听风-ARTS-第 1 周

    ARTS 是耗子叔发起的一个活动 A(Alogarithm):每周至少做一个 leetcode 算法题R(Revi...

  • 左耳听风

    00开篇词 自我介绍 本收费专栏会讲哪些东西会以体系话的方式讲解2-3 个分布式的文章热点事件经验之谈 如何自我成...

  • 左耳听风

    如何让自己的技能变现 千里之行,积于跬步 关注有价值的东西关于市场需求关于技术趋势 找到能体现价值的地方 。在一家...

  • 左耳听风

    沟通的阻碍和应对方法 1. 信息不准确 建议: (1) 沟通之前,首先想清楚沟通目的,然后整理措辞 (...

  • ATRS 第001周打卡 (19.3.25-19.3.31)

    参加了左耳听风(耗子叔)的ATRS 打卡,左耳朵耗子专栏《左耳听风》 用户自发每周完成一个ARTS:Algorit...

  • ATRS 第002周打卡 (19.4.7-19.4.14)

    参加了左耳听风(耗子叔)的ATRS 打卡,左耳朵耗子专栏《左耳听风》 用户自发每周完成一个ARTS:Algorit...

  • ATRS 第003周打卡 (19.4.15-19.4.21)

    参加了左耳听风(耗子叔)的ATRS 打卡,左耳朵耗子专栏《左耳听风》 用户自发每周完成一个ARTS:Algorit...

  • ATRS 第000周打卡 (19.3.18-19.3.24)

    参加了左耳听风(耗子叔)的ATRS 打卡,左耳朵耗子专栏《左耳听风》 用户自发每周完成一个ARTS:Algorit...

  • 左耳听风 第六周

    左耳听风 第六周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文...

  • 左耳听风 第六周

    左耳听风 第六周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文...

网友评论

      本文标题:左耳听风-ARTS-第 1 周

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