热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Leetcode学习成长记:天池leetcode基础训练营Task01数组

前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动

前言


这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动中有一项组队刷LeetCode,恰逢本人正在准备考研复试机试,便欣然加入以求有所收获和提升。


同时,这也是本人第一次在CSDN写文章,希望在此记录并向大家分享自己在学习过程中总结的知识和收获的感悟,也可以在此和大家谈论遇到的问题,向诸位优秀的CSDNer们学习,我们共同进步!

ε≡٩(๑>₃<)۶ 一心向学



活动简介


Task01数组


知识点总结


  1. 数组的定义
    数组是具有一定顺序关系的若干对象组成的集合,组成数组的对象成为数组元素。
    它可以存储一个 固定大小相同类型 元素的顺序集合。
    数组的元素也可以是数组,这样就得到了多维数组。

  2. 数组的存储
    数组是由连续的内存位置组成,即在物理存储层面是使用一片连续的存储空间。
    最低的地址对应第一个元素,最高的地址对应最后一个元素。 即按顺序连续存储。
    这样的好处是我们可以利用索引对数组元素进行随机存取,而不足则是数组空间固定,不易扩充或减少,容易造成溢出或空间浪费。

  3. 数组元素的访问
    数组的存储按照行优先(C、C++、C#)或列优先(Forturn)的原则进行。
    可以利用以下公式计算得到数组中任一下标所存元素的位置,当然在C语言中我们可以直接利用下标对数组元素进行访问。(考研数据结构里面还是比较喜欢考下面这种计算的)
    以下数组声明分别为 type a[n]; type a[m][n]; type a[m][n][l];

    一维数组:Loc(a[i]) = Loc(a[0]) + i x c
    二维数组:Loc(a[i][j]) = Loc(a[0][0]) + (i x n + j) x c
    三维数组:Loc(a[i][j][k]) = Loc(a[0][0][0]) + (i x n x l + j x l + k) x c
    以上公式中 c 即代表数组中单个元素大小,可以利用 sizeof(a[0]) 得到,也是数据类型type的大小


例题


  1. Leetcode1两数之和
    这是一道很简单的题,很直接的思路就是暴力解法,利用二重循环穷举数组中两元素之和,找到满足的两元素返回下标即可,这样解答的时间复杂度是O(N2);
    此外,可以将数组先排序,再分别从头尾开始夹逼。
    Leetcode的官方题解还提供了利用哈希表的解法,这样可以将时间复杂度降低至O(N)。
  2. Leetcode16最接近的三数之和
    这是一道中等难度的题,也可以用暴力解法求解,即考虑直接使用三重循环枚举三元组,找出与目标值最接近的作为答案,但是时间复杂度将达到O(N3);
    Leetcode的官方题解中给出的解法是双指针法,即首先将数组元素升序排列,假设数组的长度为 n ,我们需要的答案由a、b、c三个数得到,可以先枚举 a,它在数组中的位置为 i,然后在位置[i+1,n) 的范围内枚举 b 和 c。

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:


  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G


合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。


如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本


引用文本


H2O is是液体。

210 运算结果是 1024.


插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。


如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = &#39;bar&#39;;

生成一个适合你的列表


  • 项目
    • 项目
      • 项目

  1. 项目1
  2. 项目2
  3. 项目3

  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:


项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右


第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:


TYPEASCIIHTML
Single backticks&#39;Isn&#39;t this fun?&#39;‘Isn’t this fun?’
Quotes"Isn&#39;t this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表


Markdown
Text-to-HTML conversion tool
Authors
John
Luke


如何创建一个注脚

一个具有注脚的文本。2


注释也是必不可少的

Markdown将文本转换为 HTML。


KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n1)!nN 是通过欧拉积分

Γ(z)=∫0∞tz−1e−tdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.


你可以找到更多关于的信息 LaTeX 数学表达式here.



新的甘特图功能,丰富你的文章


Mon 06Mon 13Mon 20

已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid


  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:


张三李四王五

你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间, 文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:


链接
长方形
圆角长方形

菱形


  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:


Created with Raphaël 2.3.0开始我的操作

确认?结束

yes

no


  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入


导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。


导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。




  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎



推荐阅读
author-avatar
RealMadrid
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有