二維數組中的尋找,二維數組尋找

來源:互聯網
上載者:User

二維數組中的尋找,二維數組尋找

題目描述:

在一個二維數組中,每一行都按照從左至右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。

輸入:

輸入可能包含多個測試範例,對於每個測試案例,

輸入的第一行為兩個整數m和n(1<=m,n<=1000):代表將要輸入的矩陣的行數和列數。

輸入的第二行包括一個整數t(1<=t<=1000000):代表要尋找的數字。

接下來的m行,每行有n個數,代表題目所給出的m行n列的矩陣(矩陣如題目描述所示,每一行都按照從左至右遞增的順序排序,每一列都按照從上到下遞增的順序排序。

輸出:

對應每個測試案例,

輸出”Yes”代表在二維數組中找到了數字t。

輸出”No”代表在二維數組中沒有找到數字t。

範例輸入:
3 3
5
1 2 3
4 5 6
7 8 9
3 3
1
2 3 4
5 6 7
8 9 10
3 3
12
2 3 4
5 6 7
8 9 10
範例輸出:
Yes
No
No
////  main.c//  二維數組中的尋找////  Created by 李亞坤 on 14-9-27.//  Copyright (c) 2014年 李亞坤. All rights reserved.//#include <stdio.h>#include <stdlib.h>#define MAX 1000000int find(int m, int n, int target,int a[]){    // 二分搞起了    int middle, left, right;    left = 0;    right = m * n;        while (left < right) {        middle = (left + right - 1) / 2;        if (target > a[middle]) {            left = middle + 1;        }        else            if (target < a[middle]) {                right = middle;            }        else            return 0;    }    return -1;}int main(int argc, const char * argv[]) {    int a[MAX];    int m, n;    int i, j;    int target;    scanf("%d %d", &m, &n);        scanf("%d", &target);        for (i = 0; i < m; i++) {        for (j = 0; j < n; j++) {            scanf("%d", &a[i * m + j]);        }    }    if (find(m, n, target, a) == 0)        printf("Yes\n");    else        printf("No\n");    return 0;}


 

怎尋找二維數組

var Employees = [['0', '50人以下'], ['1', '50-200人'], ['2', '200-500人'], ['3', '500-1000人'], ['4', '1000人以上']];
function (n){
if (typeof n == 'number'){
alert(Employees[n][1]);
return Employees[n][1];
}
}
 
隨機產生一個0-9的二維數組,在二維數組中尋找一個數,如果找到就顯示該元素的下標及數組的值

'二維數組:
Private Sub Command1_Click()
Dim i, j, arr(1 To 10, 1 To 2) As Integer, t, flag As Boolean
Cls
For i = 1 To UBound(arr, 2)
For j = 1 To UBound(arr, 1)
Randomize
arr(j, i) = Int(Rnd * 11)
Print arr(j, i);
Next
Print
Next
Do
t = InputBox("輸入一個需要尋找的數:", , 5)
If IsNumeric(t) Then Exit Do
Loop
t = Val(t)
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
If t = arr(i, j) Then
Print "arr(" & i & "," & j & ")=" & t
flag = True
End If
Next
Next
If Not flag Then MsgBox "未找到數:" & t
End Sub
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.