在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

题目解析部分

题目中说的这个数组使我们所熟知的杨氏矩阵
拿到一道题的解题思路应该是这样的:先看这道题中所用到的知识点,然后选用合适的类型和返回类型。先用伪代码来将整体思路屡清楚,再用代码去代替

伪代码部分

假设这个要找的整数为falg

  1. 找到矩阵的右上角的值与falg进行比较
  2. 如果比falg小,说明该行整数都比falg小,开始从下一行进行匹配
  3. 如果比falg大,说明该行可能有与falg相等的整数
  4. 如果将整个矩阵都找过后没有找到,就返回-1,如果找到了就返回1

代码部分

#include<stdio.h>int find(int array[10][10], int cows, int columns,const int num  )
{int row = 0;//定义行数int column = columns - 1;//定义列数		这时形参columns是列数,所以应该-1才是最后一列的坐标int ret = -1;//定义一个返回值,	初始值为-1:如果以下代码没有找到这个数,就返回-1,找到了就返回1while (row <= cows && column >= 0){if (num == array[row][column]){ret = 1;break;}//用杨氏矩阵右上角的数值于num进行比较,如果想等,将1赋给ret,然后结束循环,否则进行下一步操作if (num > array[row][column]){row++;column = columns - 1;//每次从下一行查找时,都要从最右边的整数开始//如果不从最右边开始,可能flag就在array[row][column]的右边(可以自行测试)continue;}//如果右上角这个数值小于num,由于这个数是该行最大值,则跳到下一行进行比较,跳出此次循环,进行下一次循环if (num < array[row][column]){column--;continue;}//如果右上角这个数值大于num,则跳到前一列进行比较,跳出此次循环,进行下一次循环}return ret;}int main()
{int arr[5][8] = { { 1, 2, 3, 4, 5 }, { 2, 4, 5, 6, 7 }, { 3, 4, 5, 6, 7 } };int num = 11;int row = sizeof(arr) / sizeof(arr[0]);int column = sizeof(arr[0]) / sizeof(int);int ret = 0;ret = find(arr, row, column, num);if (ret == 1){printf("找到了\n");}else{printf("没有找到!\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更新价目表价格

因为去年一笔销售订单行的价目表价格为0.今年要对这行进行退货。 由于价目表价格为0&#xff0c;退货订单引用参考该行时&#xff0c;提示“项目....的价目表价格 0 或销售价格 -.00041202为负&#xff0c;且配置文件“ONT&#xff1a;负定价”设置为“N””. 解决办法&#xf…

AI芯片:从历史看未来

来源&#xff1a;36氪摘要&#xff1a;从芯片发展的大趋势来看&#xff0c;目前尚处于AI芯片发展的初级阶段&#xff0c;无论是科研还是产业应用都有巨大的创新空间。我们相信&#xff0c;未来十年将是AI芯片发展的重要时期&#xff0c;有望在架构和设计理念取得巨大的突破。目…

替换字符串中的空格

剑指offer面试题 请实现一个函数&#xff0c;将一个字符串中的每个空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 看到题目后的思路 看到这个题目后&#xff0c;我们首相应该想到的是&#xff1a;原来的一个空格字…

类型,对象,线程栈和托管堆在运行时的相互关系(一)。

当系统加载一个CLR的进程&#xff0c;进程里面可能有多个线程&#xff0c;这时候系统会给这个进程创建一个大小为1M的线程栈。这个线程栈用来存放方法调用的实参&#xff0c;和方法内部定义的局部变量。下图展示了一个线程栈的栈内存。线程栈的存储是从高位内存地址向地位内存地…

阿里云发布三大人工智能产品:推动AI产业落地

来源&#xff1a;科技圈里那点事儿摘要&#xff1a; 近日&#xff0c;阿里云正式发布了三款人工智能产品&#xff1a;图像搜索、智能语音自学习平台以及机器翻译&#xff0c;进一步推动产业AI的落地。近日&#xff0c;阿里云正式发布了三款人工智能产品&#xff1a;图像搜索、智…

C/C++求一个整数的二进制中1的个数(用三种效率不同的方法实现)

题目&#xff1a; 实现一个函数&#xff0c;输入一个整数&#xff0c;输出该数二进制中1的个数。例如把9表示成二进制是1001&#xff0c;有2位是1&#xff0c;因此如果输入是9&#xff0c;该函数输出2 第一种解法&#xff08;死循环&#xff09; 判断整数二进制表示中最右边…

经验收藏

http://hi.baidu.com/%D7%DF_%B4%F8%C4%E3%CC%FD%B8%E8%C8%A5/blog转载于:https://www.cnblogs.com/hx214blog/archive/2012/05/23/2514796.html

2018智能音频报告:智能音箱带来的智能音频和广播媒体的机遇

来源&#xff1a;199IT互联网数据中心摘要&#xff1a;前中国智能音箱正热&#xff0c;阿里巴巴、京东、百度纷纷发布自己的智能音箱产品&#xff0c;大打价格战&#xff0c;希望以绝对底价抢占市场。前中国智能音箱正热&#xff0c;阿里巴巴、京东、百度纷纷发布自己的智能音箱…

删除链表中指定节点,要求时间复杂度为O(1)

思路&#xff1a; &#xff08;1&#xff09;把要删除的节点的值与其next交换 &#xff08;2&#xff09;删除其next &#xff08;3&#xff09;完成 算法&#xff1a; 1 void DeleteNode(LinkList *p){2 if(p->nextNULL){3 free(p);4 pNULL;5 }…

c++中求前n项和(这代码不得不让我佩服)

今天在牛客网上刷题&#xff0c;遇到了这道题&#xff0c;最后我看到一位大佬的代码让我感觉的还差很多&#xff01;&#xff01;&#xff01; 题目 求123…n&#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&am…

基于Arduino和HC-SR04的超声波测距系统设计

本文介绍了如何使用Arduino和HC-SR04超声波传感器设计并构建一个简单的超声波测距系统。我们将详细讨论硬件连线和编程步骤&#xff0c;并提供完整的Arduino代码。此系统可以应用于各种需要测量距离的项目&#xff0c;例如智能车辆、机器人和安防系统。 引言&#xff1a; 超声…

中国AI企业吸金旺但90%亏损 今年将迎倒闭潮

来源&#xff1a;网易智能摘要&#xff1a; 据报道&#xff0c;自2017年人工智能成为国家战略目标后&#xff0c;相关产业迎来飞速发展机遇&#xff0c;更成为全球吸金能力最强的产业之一。2017全年&#xff0c;大陆AI企业的融资总额已占到全球的7成&#xff0c;但其背后的隐忧…

在窗口间移动按扭

// 在窗口间移动按扭 procedure TForm1.Button1Click(Sender: TObject);begin if Button1.ParentForm1 then begin button1.Caption:单击返回; Button1.Parent:Form2; Button1.Left : 232; Button1.Top : 88; end else begin …

不用加减乘除算加法

题目 写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用、-、*、/四则运算符号。 思路 &#xff08;一&#xff09;首先看我们平时的十进制是如何做的&#xff1a; 65 &#xff0c;三步曲&#xff01;&#xff01;&#xff01; 相加各位的值&#xf…

《Nature》纪念人工智能60周年专题:深度学习综述

来源&#xff1a;网络大数据摘要&#xff1a;本文是《Nature》杂志为纪念人工智能60周年而专门推出的深度学习综述&#xff0c;也是Hinton、LeCun和Bengio三位大神首次合写同一篇文章。本文是《Nature》杂志为纪念人工智能60周年而专门推出的深度学习综述&#xff0c;也是Hinto…

oss/bss/mss转自搜搜百科

BSS:Business support system 业务支撑系统 OSS:Operation support system 运营支撑系统 MSS:Management Support System 管理支撑系统 (前二者又合称 BOSS:Business and Operation support system ,电信业务运营支持系统)在 企业(特别在是电信行业)IT 战略规划中占据了重要地…

模拟实现string其中的一些知识点

知识点列举 使用初始化列表的好处拷贝构造的形参为&与值的区别深拷贝与浅拷贝使用&的好处形参使用const引用的好处 使用初始化列表的好处 类成员中存在常量&#xff0c;如const int a,只能用初始化不能复制类成员中存在引用&#xff0c;同样只能使用初始化不能赋值。…

对抗性攻击轻松愚弄人工智能

对抗性攻击欺骗图像识别算法将3D打印乌龟认作步枪。来源&#xff1a;中国科学报摘要&#xff1a;在日前于瑞典斯德哥尔摩举行的国际机器学习会议上&#xff0c;一群研究人员描述了他们的3D打印乌龟。在日前于瑞典斯德哥尔摩举行的国际机器学习会议上&#xff0c;一群研究人员描…

浅谈C语言指针

什么是指针&#xff1f; 在计算机科学中&#xff0c;指针&#xff08;Pointer&#xff09;是编程语言中的一个对象&#xff0c;利用地址&#xff0c;它的值直接指向存在电脑存储器中的另一个地方的值。由于通过地址能找到所需的变量单位&#xff0c;可以说&#xff0c;地址指向…

转:EXCEL数据有效性设置

原文&#xff1a; http://hi.baidu.com/guosq/blog/item/88b37cd5bd367cfda144dfa0.html 先看图&#xff0c;有学生成绩表格&#xff0c;录入要求&#xff1a; 1. 成绩范围&#xff1a; 0 - 100&#xff1b; 2. 课程&#xff1a;只能是语文、数学、英语。 操作步骤&#xff1a;…