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

[剑指Offer笔记]3_数组

[剑指Offer笔记]3_数组数组,字符串:连续空间链表,树:大量指针操作栈:与递归相关队列:广度优先算法相关数组O(1)时间读写元素;可以用数组实现哈希表;有了哈希表可以实现O(

[剑指Offer笔记]3_数组


数组,字符串:连续空间

链表,树:大量指针操作

栈:与递归相关

队列:广度优先算法相关



数组


  • O(1)时间读写元素;

  • 可以用数组实现 哈希表 ;

    有了哈希表可以实现O(1)查找!

  • 固定大小的数组,效率不高. STL 中的 vector

    先开辟一个小的空间,当空间不够时再分配更大的空间.每次为之前的2倍.

    使用动态数组要尽量计算减少改变容量大小的次数

  • 注意:

    数组与指针的关系


面试题:


  • 在一个二维数组中,每一行都按照从左往右递归的顺序排序,每一列都按照从上到下递增的书序排序.完成一个函数,输入一个这样的二维数组和一个数,判断该数是否在数组中.

分析:


  • 取数组的右上角 arr[i][j] ,判断它和目标数字 target 的关系
  • 若相等,则找到,若 arr target,则target不在这一列
  • 注意边界的判断,防止越界.

代码实现:

class Solution {public:bool Find(int target, vector > array) {int rows = array.size();int cols = array[0].size();bool FOUND = false;int i = 0, j = cols - 1; // 左上角(i,j),i行j列while (1) {// 没有越界if (i >= 0 && i = 0 && j targetj--;}}else {break;}}return FOUND;}};


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