数组中常见的问题
排序: 选择排序;插入排序;归并排序;快速排序
查找:二分查找法
数据结构:栈;队列;堆

二分查找法:
1964年提出,没有bug的二分查找法是在1962年出现

对于有序的排列,才能使用二分查找法
1查找中间的元素是否和目标元素相等
2小于,在左边找
3大于,在右边找
4关键点:边界问题

区间为闭区间[l…r]

区间为前闭后开:[l…r)

如果存在整型溢出


leetcode 283 Move Zeros

给定一个数组nums,写一个函数,将数组中所有的0挪到数组的末尾,而维持其他非0元素的相对位置。

1 思考题:删除元素


2 删除重复的元素


扩展题:最多保留两个重复元素

3-5 基础算法思路的应用

扩展题:归并排序

leetcode 215 利用快排的思路,在一个整数序列中寻找第k大的元素



leetcode 167

1 两个不同的元素
2 返回索引(索引是0开始,还是1开始)

167的解决方法就是对撞指针

125 有效回文串

空字符串如何看?
字符的定义?
大小写问题?


解决方案:对撞指针

扩展题345:对元音字母进行翻转


容器水最多,思考仍然用对撞指针去解决
3-7 双索引技术(对撞指针等)
1 滑动窗口:
ep1: leetcode 209

什么叫子数组?子数组分连续喝不连续梁总中情况
如果没有接怎么办?返回0?、
如果有多个解怎么样?应该怎么返回?按照什么规则?


练习题:sum求解是否可以使复杂度降为o(n*n)



窗口的长度把那个不是保持不变,同时由i和j控制;

3-8




如何记录重复字符:


练习题1:(利用滑动窗口解决)

注意问题: 字符集范围?英文小写字母
返回的解的顺序?任意

练习题2:leetcode76

注意问题:

玩转算法面试-第三章相关推荐

  1. 玩转算法面试-第四章查找值之leetcod相关笔记

    查找问题 4-1,2 两类查找问题 1 查找有无:set 2 查找对应关系:map 常见的四种操作: insert, find, erase, change(map) 例题 leetcode 349 ...

  2. 玩转算法面试习题列表

    题目来源于慕课网课程<玩转算法面试>. 第3章 数组 283 移动零 27 移除元素 26 删除排序数组中的重复项 80 删除排序数组中的重复项 II 75 颜色分类 88 合并两个有序数 ...

  3. 算法复习第三章分治法

    算法复习第三章分治法 循环日程表 最近点对 快速排序: 循环日程表 最近点对

  4. bobo老师玩转算法面试,如何准备技术面试?

    看了慕课网bobo老师的玩转算法面试课程,做了一些笔记. 算法面试是什么? 算法面试需要有一个合理的思考路径:算法只是技术的一部分. 不代表能够"正确"回答每一个算法问题,但是合理 ...

  5. 《学习JavaScript数据结构与算法》第三章 数组

    文章目录 前言 一.创建 && 初始化数组 二.操作数组 push-添加元素于末尾 unshift-添加元素于开头 pop-从数组末尾开始删除元素 shift-从数组开头开始删除元素 ...

  6. 《啊哈算法》第三章--枚举很暴力

     从无到有学算法(看漫画学算法)   (๑•̀ㅂ•́)و✧ 爱要坦荡荡 - 萧潇 - 单曲 - 网易云音乐 一,坑爹的奥数 枚举算法又叫穷举算法,非常的暴力,它的基本思想是"有序地去尝试每一 ...

  7. C语言程序设计(理论课)第二章(理解)算法和第三章数据类型及其运算

    第二章算法--程序的灵魂 算法+数据结构=程序 数据结构  对数据的描述.在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式. 算法  对操作的描述.即要求计算机进行操作的步骤.  广义的 ...

  8. 玩转算法面试:(一)什么是算法面试?

    前言 对于面试中遇到的大多数问题 都能有一个合理的思考路径 沟通: 边界条件是怎样的? 数据范围如何? 某些术语是具体如何定义的? 基础数据结构 算法设计思想: 递归分治 贪心 动态规划 回溯搜索 L ...

  9. 【Java数据结构与算法】第三章 双向链表和约瑟夫问题

    第三章 第三章 双向链表.环形链表以及约瑟夫问题 文章目录 第三章 第三章 双向链表.环形链表以及约瑟夫问题 一.双向链表 1.双线链表对比单向链表的优点: 2.分析双向链表的遍历.添加.修改和删除的 ...

最新文章

  1. python pip指令_python 常用 pip 命令合集
  2. HTTP协议Etag详解
  3. 一个由进程内存布局异常引起的问题
  4. 深入浅出学习Struts框架(八):分析Struts框架实例3
  5. Android面试题详细整理系列(一)
  6. UIScrollView的delegate方法妙用之让UICollectionView滑动到某个你想要的位置
  7. 零基础在学习Java时如何才能打好基础呢
  8. 无线对讲调度服务器,无线对讲系统解决方案
  9. 如何分析 StackOverflow 异常 ?
  10. java 实现数据结构之队列
  11. 网络中的网络 NiN 动手学深度学习v2 pytorch
  12. 开源B2B2C WSTMart商城系统开发框架及插件介绍
  13. 用二叉树表示家谱关系并实现各种查找功能
  14. Windows 之 win SMB(smb) 功能的开启设置和使用的简单说明
  15. InnoDB 离线转储工具
  16. 90后,是被逼创业的,大家觉得呢?
  17. java回顾:MyBatis参数、sql片段、动态sql、高级查询
  18. 迷宫问题 深度优先搜索 广度优先搜索 宽度优先搜索【python】
  19. 什么是白马股,它与蓝筹股有什么区别?
  20. 系统升级 | RK3568开发平台成功搭载SylixOS国产实时操作系统

热门文章

  1. 如何让linux服务器同步互联网时间
  2. MySQL中的alter table操作之add/modify/drop列
  3. 流媒体传输协议系列之--RTSP协议详解
  4. 干,认识Audio框架还因此发现一个雷
  5. VS_VERSION_INFO信息的读取
  6. 图像多分类——卷积神经网络
  7. 【Pytorch神经网络理论篇】 06 神经元+神经网络模型+全连接网络模型
  8. hdfs复制文件夹_HDFS常用命令
  9. 五、scrapy爬虫框架——logging 模块的使用
  10. Web框架——Flask系列之json、jsonify模块的使用(十四)