国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

劍指offer--<二維數組查找>

2019-11-06 06:40:15
字體:
來源:轉載
供稿:網友

轉載請聲明源地址

聽說,劍指offer那都是大牛干的活【偷笑】,我也湊個熱鬧,

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

有三個想法:

1.1 for循環遍歷

1.2 for循環遍歷優化版

2. 騰訊曾經的筆試題目(那個100層扔雞蛋,扔玻璃球,扔......)【下篇博客再寫】。

看到題目的時候,以前做過一維數組查找,一個for循環查找,二維數組要查找的話,一樣,直接使用兩個for循環,時間復雜度是o(n^2),說干就干。

存在的問題:

數組是自增數組,如何查找才時間復雜度才是最低的 ,這是優化的方向,想法2也是基于這個目的。

1.1 for循環遍歷 

中心指導思想:遇到相同的文件就退出所有循環,將外循環加上標簽,退出循環時,直接退出標簽循環。

   public static boolean Find1(int target, int [][] array) {        int lenOfarray=array.length;        int lenOfRow=array[0].length;        Boolean flag=true;        outside:		for (int i=0;i<lenOfarray;i++)		{			for (int j=0;j<lenOfRow;j++)			{				if (array[i][j]==target)				{					flag=false;					break outside;				}			}		}		return !flag;    }附:牛客截圖

1.2 for循環遍歷

中心指導思想:遇到相同的文件就退出所有循環,將判斷元素相同的條件加入到 循環判定條件中  ,這樣一旦flag變化,判斷條件也同樣變化。

    public static boolean Find2(int target, int [][] array) {        int lenOfarray=array.length;        int lenOfRow=array[0].length;        Boolean flag=true;		for (int i=0;flag && i<lenOfarray;i++)		{			for (int j=0;flag && j<lenOfRow;j++)			{								if (array[i][j]==target)				{					flag=false;				}			}		}		return !flag;    }附:牛客截圖

源代碼:GitHub:  https://github.com/johnlee2018/JZoffer.git


上一篇:測試和調試可觀察序列

下一篇:UVa442

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 从化市| 芦溪县| 察哈| 烟台市| 昭苏县| 锡林浩特市| 广河县| 仪陇县| 漳州市| 呼图壁县| 岳阳市| 永靖县| 盈江县| 河南省| 湘潭县| 屏南县| 呼伦贝尔市| 瑞昌市| 扶余县| 大安市| 隆化县| 湛江市| 临泽县| 屏山县| 沁水县| 高雄县| 都昌县| 鱼台县| 镶黄旗| 大邑县| 农安县| 潍坊市| 浮山县| 禹城市| 缙云县| 嵊泗县| 乌鲁木齐市| 滨州市| 葵青区| 中宁县| 新和县|