日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/7/23 编程问答 26 豆豆

題目解析部分

題目中說的這個數(shù)組使我們所熟知的楊氏矩陣
拿到一道題的解題思路應(yīng)該是這樣的:先看這道題中所用到的知識點,然后選用合適的類型和返回類型。先用偽代碼來將整體思路屢清楚,再用代碼去代替

偽代碼部分

假設(shè)這個要找的整數(shù)為falg

  • 找到矩陣的右上角的值與falg進行比較
  • 如果比falg小,說明該行整數(shù)都比falg小,開始從下一行進行匹配
  • 如果比falg大,說明該行可能有與falg相等的整數(shù)
  • 如果將整個矩陣都找過后沒有找到,就返回-1,如果找到了就返回1
  • 代碼部分

    #include<stdio.h>int find(int array[10][10], int cows, int columns,const int num ) {int row = 0;//定義行數(shù)int column = columns - 1;//定義列數(shù) 這時形參columns是列數(shù),所以應(yīng)該-1才是最后一列的坐標int ret = -1;//定義一個返回值, 初始值為-1:如果以下代碼沒有找到這個數(shù),就返回-1,找到了就返回1while (row <= cows && column >= 0){if (num == array[row][column]){ret = 1;break;}//用楊氏矩陣右上角的數(shù)值于num進行比較,如果想等,將1賦給ret,然后結(jié)束循環(huán),否則進行下一步操作if (num > array[row][column]){row++;column = columns - 1;//每次從下一行查找時,都要從最右邊的整數(shù)開始//如果不從最右邊開始,可能flag就在array[row][column]的右邊(可以自行測試)continue;}//如果右上角這個數(shù)值小于num,由于這個數(shù)是該行最大值,則跳到下一行進行比較,跳出此次循環(huán),進行下一次循環(huán)if (num < array[row][column]){column--;continue;}//如果右上角這個數(shù)值大于num,則跳到前一列進行比較,跳出此次循環(huán),進行下一次循環(huán)}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; }

    總結(jié)

    以上是生活随笔為你收集整理的在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。