একটি m x n ম্যাট্রিক্সে একটি ভ্যালু সার্চ করতে হবে। ম্যাট্রিক্সের বৈশিষ্ট্য: প্রতিটি রো লেফট থেকে রাইটে সর্টেড, এবং প্রতিটি রোয়ের প্রথম নম্বর আগের রোয়ের শেষ নম্বর থেকে বড়।
উদাহরণ ম্যাট্রিক্স:
| 1 | 3 | 5 | 7 |
| 10 | 11 | 16 | 20 |
| 23 | 30 | 34 | 50 |
| 53 | 62 | 78 | 98 |
সমাধান: ডাবল বাইনারি সার্চ। প্রথমে রো বের করব (low=0, high=n-1)। তারপর সেই রোতে কলামে বাইনারি সার্চ।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
lli n,m;
n = matrix.size();
if(!n)return false;
m = matrix[0].size();
if(!m)return false;
lli low = 0, high = n-1;
while(low
ইনপুট
[[1,3,5,7],[10,11,16,20],[23,30,34,50],[53,62,78,98]] 16
আউটপুট
1