劍指offer題答案筆記
1.二維數組中的查找數組
/*思路:二維數組從上到下,從左到右遞增的規律 選取右上角的元素與target比較 target<a[row][col],target在元素所在行的左邊 col-- target>a[row][col],target在元素所在列的下邊 row++ target==a[row][col] 返回true 當row > array[0].length -1 || col <0 沒有找到 */ public class Solution { public boolean Find(int target, int [][] array) { int row = 0;//行 int col = array[0].length -1;//列 while(row <= array[0].length -1 && col >=0){ if(target == array[row][col]) return true; else if(target < array[row][col]) col--; else row++; } return false; } }
1.連續子數組的最大和
動態規劃code
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int size = array.size(); if(size == 0) return 0; int maxSum = array[0]; int sum = 0; for(int i= 0;i<size;i++){ if(sum<0){ sum=array[i]; }else{ sum=array[i]+sum; } if(sum>maxSum){ maxSum =sum; } } return maxSum; } };