剑指offer-做题

  • 1.二维数组中的查找(用了三种方法解答)
  • 2.替换空格
  • 3.从尾到头打印链表

1.二维数组中的查找(用了三种方法解答)

描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
示例1
输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
返回值:true
说明:存在7,返回true
示例2
输入:3,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
返回值:false
说明:不存在3,返回false
代码如下(示例):

bool Find(int target, vector<vector<int> > array) {//方法一:以vector版本的左下角为始点if(array.size()==0)return false;int row=array.size();int col=array[0].size();int x=row-1;int y=0;while(x>=0&&y>=0&&x<row&&y<col){if(array[x][y]==target)return true;else if(array[x][y]>target)x--;elsey++;}return false;//第二种方法:全局遍历if(array.size()==0)return false;int row=array.size();int col=array[0].size();for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(array[i][j]==target)return true;}}return false;//第三种方法:以vector版本的右上角为始点if(array.size()==0)return false;int row=array.size();int col=array[0].size();int x=0;int y=col-1;while(x>=0&&y>=0&&x<row&&y<col){if(array[x][y]==target)return true;else if(array[x][y]>target)y--;elsex++;}return false;}

2.替换空格

描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
示例1
输入:“We Are Happy”
返回值:“We%20Are%20Happy”

代码如下(示例):

string replaceSpace(string s) {// write code hereint sz=s.size();//统计空格个数int count=0;for(int i=0;i<sz;i++){if(s[i]==' ')count++;}//计算总的长度:原来字符串长度+空格个数int len=sz+count*2;s.resize(len);//从后向前访问int end=len-1;int cur=sz-1;while(cur<end){if(s[cur]!=' ')s[end--]=s[cur];else{s[end--]='0';s[end--]='2';s[end--]='%';}cur--;}return s;}

3.从尾到头打印链表

描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
示例1
输入:{67,0,24,58}
返回值:[58,24,0,67]
代码如下(示例):

vector<int> printListFromTailToHead(ListNode* head) {vector<int>v;if(head!=NULL){v.insert(v.begin(),head->val);while(head->next!=NULL){v.insert(v.begin(),head->next->val);head=head->next;}}return v;}

剑指offer-做题:1-3相关推荐

  1. 剑指offer做题记录

    1. 剑指 Offer 03. 数组中重复的数字   力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...

  2. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  3. 剑指offer(60-67题)详解

    文章目录 60 把二叉树打印成多行 61 序列化二叉树 62 二叉搜索树第K个节点 63 数据流中的中位数 64 滑动窗口的最大值 65 矩阵中的路径 66 机器人的运动范围 67 剪绳子 欢迎关注个 ...

  4. 剑指offer(1-10题)详解

    文章目录 01二维数组的查找 02替换空格 03从尾到头打印链表 04重建二叉树★ 05 用两个栈实现队列 06旋转数组的最小数字 07 斐波那契数列 08 跳台阶 09 变态跳台阶★ 10 矩阵覆盖 ...

  5. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  6. 剑指offer刷题笔记-篇2

    文章目录 剑指offer 前言 机器人的运动范围 剪绳子 二进制中1的个数 数值的整数次方 从1到n的位数 移除链表元素 删除链表中重复的结点 *正则表达式匹配 *表示数值的字符串 调整数组顺序 链表 ...

  7. 剑指Offer 66题 python版本 汇总

    牛客网剑指offer 66题汇总 (python) 有部分参考牛客网答案,部分为自己提交结果 1. 二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每 ...

  8. C++剑指offer刷题笔记

    说明:本文是本人刷题后整理的剑指offer1-68题的题解笔记,编程语言为c++. 主要参考刷题笔记网址:leetcode剑指offer 次要参考刷题笔记网址:牛客剑指offer 剑指OFFER 面试 ...

  9. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  10. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

最新文章

  1. Cacti(一)之“better-cacti-templates”
  2. boost库shared_ptr实现桥接模式
  3. Service Unavailable HTTP Error 503. The service is unavailable.
  4. JavaScript得到鼠标指针相对于浏览器页面(或客户区)的水平坐标(兼容ie,ff)...
  5. linux 高性能日志,linux日志系统
  6. NOIP2017 Day1 T3 逛公园
  7. jQuery(非插件)制作商城放大镜效果
  8. mysql 定位字符串的位置
  9. 2018年苏大计算机考研872真题及解析
  10. 将.pem转换为.crt和.key
  11. 佳能尼康宾得等,说说查看各大单反品牌的快门次数方法
  12. 【Go语言刷题篇】Go完结篇函数、结构体、接口、错误入门学习
  13. 万字拆解江小白:新品牌做白酒,敢问路在何方?
  14. 802.11ac linux驱动下载,下载的驱动程序Realtek 8811CU Wireless LAN 802.11ac USB NIC 1030.22.0405.2017...
  15. 多线程与 “锁”
  16. ListView缓存机制小结
  17. RTTHREAD软件包目录
  18. Java 设计模式——中介者模式(行为型设计模式)
  19. 计算机应用基础数据处理教案,大学计算机应用基础教案
  20. 如何在ubuntu14.04上安装轻量级的Budgie桌面(v8)

热门文章

  1. When YoloV5 Meets Raccoon:手把手用Yolov5(v4.0)制作一个小浣熊捕捉apk
  2. 总结Linux系统压缩和解压文件指令——gzip/gunzip 指令、zip/unzip 指令、tar 指令
  3. css 多行文字超出部分省略号 一行文字超出部分省略号
  4. Intellij IDEA使用Maven搭建spark开发环境(scala)
  5. 豪杰信息杯I 湘潭oj1268-Strange Optimization
  6. Python拉勾网数据采集与可视化
  7. 计算机网络优化复习题目——选择、判断(仅供参考)
  8. goolge 地图地址位置解析
  9. 常用函数式接口:Consumer、Predicate、Function的方法说明解练习
  10. 南京睿督解读:ISO12944涂料防腐蚀等级分类及防腐蚀年限规定