1 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(来自牛客网,剑指offer)

 // IO_Solution.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <vector>
using namespace std; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
//请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 //首先构造这样一个二维向量
void BuildDstArray(vector<vector<int>>&Array)
{
int nRow = Array[].size();
int nColumn = Array.size();
for (int i = ; i < nColumn; i++)
{
for (int j = ; j < nRow; j++)
{
Array[i][j] = i*nRow + j;
}
} for (int i = ; i < nColumn; i++)
{
for (int j = ; j < nRow; j++)
{
printf("%4d", Array[i][j]);
}
printf("\n");
} } //最差情况复杂度为:n+m
bool TwoDemoArrayFind(vector<vector <int>>Array,int nDst)
{
bool bFound = false;
if (Array.empty())
{
return bFound;
}
else
{
int nCurRow = ;
int nCurCol = ;
int nRows = Array[].size();
int nCols = Array.size(); while (nCurRow < nRows&&nCurCol >= )
{
if (Array[nCurCol][nCurRow] == nDst)
{
printf("位置:{%d,%d}",nCurCol,nCurRow);
bFound = true;
break;
}
else
{
if (Array[nCurCol][nCurRow] > nDst)
{
nCurRow--;
}
else
{
nCurCol++;
}
} }
return bFound; } }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
//构造并初始化一个二维向量:4行5列
vector<vector<int>> Array(, vector<int>(, )); //另外一种构造二维向量的方法
vector<vector<int>> a;
a.resize();
for (int i = ; i < ; i++)
{
a[i].resize();
} BuildDstArray(a);
TwoDemoArrayFind(a,); getchar();
return ;
}

2

请实现一个函数,将一个字符串中的空格替换成“ % 20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
//注意如果输出的是%20d需要对%进行转义

//用Stl中的vector时间复杂度为:O(str.length());空间复杂度O(str.length+3*SpaceNum)

 void ReplaceSpace( string strSrc,char *sOut)
{
vector<char> cOut;
const char *pStr = strSrc.data();
while (*pStr != '\0')
{
if (*pStr == ' ')
{
cOut.push_back('%');
cOut.push_back('');
cOut.push_back('');
}
else
cOut.push_back(*pStr);
pStr++;
}
cOut.push_back('\0'); for (int i = ; i < cOut.size(); i++)
{
sOut[i] = cOut[i];
} } //Test
  string str= "ni hao ma";
char pStr[] = {};
ReplaceSpace(str,pStr);
printf("%s",pStr);
getchar();
return ;

剑指Offer常见问题整理的更多相关文章

  1. 剑指Offer整理笔记

    说在前面,本篇的目的是为了学习剑指offer,以及博客园的排版功能,并将文章排版得整洁得体. 梵蒂冈梵蒂冈地方官方

  2. 面试经典算法题集锦——《剑指 offer》小结

    从今年 3 月份开始准备找实习,到现在校招结束,申请的工作均为机器学习/数据挖掘算法相关职位,也拿到了几个 sp offer.经历这半年的洗礼,自己的综合能力和素质都得到了一个质的提升. 实话说对于未 ...

  3. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿:         <剑指Offer>一书源自该书作者何海涛坚持更新与编写的博客(http://zhedahht.blog.163.com/),该博客收集整理了大量如微软.Goo ...

  4. 对面试题(剑指offer)产生的一些思考。

    零散的思绪.另外,推荐<剑指offer>.本文初期大部分思考都从剑指引发. 面试题不单单只是用来面试.其中有很多编程的经验可以学习.就如同我们当年的考试:) 1:鲁棒性的一个方面:边界条件 ...

  5. 《剑指Offer》面试题-二维数组中的查找

    题目1384:二维数组中的查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7318 解决:1418 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到 ...

  6. 剑指Offer——企业级项目中分层的含义与依据及多态的优势

    剑指Offer--企业级项目中分层的含义与依据及多态的优势   关于以上两点,由于项目经验较少,自己不是很明白,特整理如下. 常见分层架构模式 三层架构 3-tier architecture   微 ...

  7. 剑指Offer——知识点储备-JVM基础

    剑指Offer--知识点储备-JVM基础 1.java内存与内存溢出 1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页) (1)程序计数器(线程私有) 当前线程执行字节码的信号指示器 ...

  8. 剑指Offer——滴滴笔试题+知识点总结

    剑指Offer--滴滴笔试题+知识点总结 情景回顾 时间:2016.9.18 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事件:滴滴笔试   总体来说,滴滴笔试内容体量不算多, ...

  9. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结

    剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...

随机推荐

  1. Lucene 学习资料

    个机制的结合.关于中文的语言分析算法,大家可以在Google查关键词"wordsegment search"能找到更多相关的资料. 安装和使用 下载:http://jakarta. ...

  2. ActiveMQ系列之五:ActiveMQ的Transport

    连接到ActiveMQ Connector:ActiveMQ提供的,用来实现连接通讯的功能.包括:client-to-broker.broker-to-broker. ActiveMQ允许客户端使用多 ...

  3. C 标准库基础 IO 操作总结

    其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...

  4. 不同场景下使用CSS隐藏元素

    使用 CSS 让元素不可见的方法很多,剪裁.定位到屏幕外.明度变化等都是可以的.虽然它们都是肉眼不可见,但背后却在多个维度上都有差别. 元素不可见,同时不占据空间.辅助设备无法访问.不渲染 使用 sc ...

  5. 春天aopframework实现

    Java的代码   包 cn.itcast.day3.aopframework; 进口 java.io.IOException的; 进口 的java.io.InputStream; 进口 java.u ...

  6. JavaScript,只有你想不到

    很长时间以来,JavaScript在我眼里都是编程语言中的二等公民.早先,它经常是很多安全问题的发源地,就像是胶水一样,它能把HTML应用与样式 粘到一块,可没有人拿它来正正规规地编写程序:这样的情形 ...

  7. javaScript(4)---数据类型

    javaScript(4)---数据类型 第4章 数据类型 学习要点: 1.typeof操作符 2.Undefined类型 3.Null类型 4.Boolean类型 5.Number类型 6.Stri ...

  8. javaScript(2)---简单使用

    javaScript(2)---简单使用 学习要点: 1.创建一张HTML页面 2.<Script>标签解析 3.JS代码嵌入的一些问题 一.创建一张HTML页面 <!DOCTYPE ...

  9. 多台或者集群环境下如何保证spring定时器只执行一个

    先说一下我们的系统, 在65和66上分别部署有weblogic节点,共计四个,在项目中我们的定时器会隔一段时间就从其它的五个系统中取数据,这时就出现了问题,本来取一次数据就可以的,现在重复执行了三次, ...

  10. 温故而后知新——对ado.net中常用对象的一些解释

    在使用ado.net连接数据库获取数据,一般的步骤是: 1.设置好web.config    //用来设置服务器数据库的地址以及登录名密码 2.创建Connection对象    //用来创建访问数据 ...