先上主角,無意刷到了劍指offer的一道題,是在矩陣中尋找某個數字,上**。
#include #include #include using namespace std;
/* 劍指offer在陣列中尋找某個數字
二維陣列從左到右是遞增的,從上到下是遞增的,在此矩陣中尋找某個特定的數字
*/bool find(int num, vector> array)
else if (num > array[j][i])
else
} return found;
}int main()
} int num;
cin >> num;
cout << find(num, array) << endl;
return 0;
}
上面的程式中細心的可能會發現有break,如果去掉break的話,vs2017我是執行不出結果的,然而下面這位博主的**:
/*
矩陣是有序的,從左下角來看,向上數字遞減,向右數字遞增,
因此從左下角開始查詢,當要查詢數字比左下角數字大時。右移
要查詢數字比左下角數字小時,上移
*/#include#include#includeusing namespace std;
class solution
else if (target > array[i][j])
else
return true;
} return false;
}};int main()
} solution s;
cout << s.find(9, array);
return 0;
}
我稍微改了改資料的輸入形式嘻嘻,然後你會發現是沒有break的,但是依然能輸出結果,不會出現執行卡死的現象,我還挺納悶,難道是類的成員函式比普通的函式執行效率高嗎??用了class居然不用break也能執行出正確結果,查了些資料,結果很少有解答的,所以我現在只能認為類是效率更高的。
懂了vector建立二維陣列的方式也是很高興吶。
動態建立二維vector陣列
二維vector vector ivec m vector n m n的二維vector 動態建立m n的二維vector 方法一 vector ivec ivec.resize m for int i 0 i ivec ivec.resize m,vector n 動態建立二維陣列a m n c語...
動態建立二維vector陣列
m n的二維vector vector ivec m vector n 動態建立m n的二維vector 方法一 vector ivec ivec.resize m for int i 0 i m i ivec i resize n 方法二 vector ivec ivec.resize m,vec...
vector 二維陣列
1052 賣個萌 20分 萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要求輸出表情。輸入首先在前三行順序對應給出手 眼 口的可選符號集。每個符號括在一對方括號內。題目保證每個集...