剑指offer 算法(数组 字符串)
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解析:解题思路:从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的列的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数字,则可以排除它所在的列。如果它小于要查找的数字,则可排除它所在的行。这样如果要查找的数字不在数组的右上角,则每次判断都可以排除一行或一列以缩小查找范围,直到找到要查找的数字,或者查找范围为空。
class Solution {
public:bool Find(vector<vector<int> > array,int target) {if(array.empty())return false;int row=array.size();int col=array[0].size();int i=0,j=0;//if(target<array[0][0]||target>array[row-1][col-1])// return false;//else//{i=0;j=col-1;while(i<row&&j>=0){if(array[i][j]==target)return true;else if(target<array[i][j]){j--;}else{i++;}}return false;//}}
};
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解析:逐个判断,当存在空格,截断字符串,分为空格前和空格后,之后连接“空格前串”+“%20”+“空格后串”,赋予原串。
class Solution {
public:void replaceSpace(char *str,int length) {int length1=strlen(str);char space[]=" ";char cat[]="%20";char *temp;int length2;char final[256];while(strstr(str,space)!=NULL){temp=strstr(str,space);length2=strlen(temp);memcpy(&final,str,(length1-length2));final[(length1-length2)]='\0';strcat(final,cat);strcpy(temp,(temp+1));temp[length2]='\0';strcat(final,temp);strcpy(str,final);length1=length1+2;;}//cout<<str<<endl;}
};
补充:坑爹的题目也不指明length是原str串最大长度~~还有,有点疑惑,我的这种办法当遇到连续两个空格是能成功替换,但最后会报错,why?why?why?在VC++6.0会出问题,codeblocks就没问题。。。string库的问题吗,因为codeblocks用的是cstring~~~看别人的办法,都是先数空格个数,再补充str长度,之后从后往前复制,当遇到空格就用“%20”替换,直到串首
剑指offer 算法(数组 字符串)相关推荐
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...
- 剑指offer算法题028:数组中出现次数超过一半的数字
小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合面试时手撕算法的最优解法.考虑到剑指offer算法题在面试中的高频出现,小编每天和大家分享一道剑指offe ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- 道指mt4代码_剑指offer算法题052:正则表达式匹配
小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合面试时手撕算法的最优解法.考虑到剑指offer算法题在面试中的高频出现,小编每天和大家分享一道剑指offe ...
- 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字
[LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...
- 剑指 Offer II 014. 字符串中的变位词
剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...
- 【LeetCode】剑指 Offer 51. 数组中的逆序对
[LeetCode]剑指 Offer 51. 数组中的逆序对 文章目录 [LeetCode]剑指 Offer 51. 数组中的逆序对 package offer;public class Soluti ...
- 【LeetCode】剑指 Offer 67. 把字符串转换成整数
[LeetCode]剑指 Offer 67. 把字符串转换成整数 文章目录 [LeetCode]剑指 Offer 67. 把字符串转换成整数 package offer;public class So ...
- 【LeetCode】剑指 Offer 56. 数组中数字出现的次数
[LeetCode]剑指 Offer 56. 数组中数字出现的次数 文章目录 [LeetCode]剑指 Offer 56. 数组中数字出现的次数 package offer;import java.u ...
- 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...
最新文章
- 13名专家盘点2017最重要AI事件,预测AGI将取代AI
- 常用电脑密码破解技巧
- php 函数传值_传址_函数参数,php函数的传值与传址(引用)详解
- (002)每日SQL学习:删除名称重复的数据
- leetcode1386. 安排电影院座位(贪心)
- php 弹出保存对话框,如何在不将页面留在PHP中的情况下强制保存为对话框?
- Leetcode | Implement strStr()
- linux中断申请之request_threaded_irq 【转】
- java 死锁_java死锁分析
- 现在人真的很奇怪,看见有钱人点头哈腰
- Bailian4039 IP地址转换【进制】
- 索佳电子水准数据传输软件_安徽铜陵磁致伸缩式静力水准仪公司
- jQuery使用(四):DOM操作之查找兄弟元素和父级元素
- 2017年第六届数学中国数学建模国际赛(小美赛)比赛心得
- 多序列比对要多久时间_序列比对,几个常用的多序列比对软件
- 打开计算机硬盘有声音,电脑硬盘有响声总吱吱响的解决方法
- python变白_Python OpenCV纯白色背景
- .woff2/svg/woff文件报404错误
- Matlab中pause语句
- 玩玩Spring之初章