// }
// }
// return -1;
// }
//二分搜索法
public int findString(String[] words, String s) {
//直接二分搜索
int left = 0;
int right = words.length - 1;
//[left.right)
while(left <= right){
while(left < words.length && words[left].equals("")){
left++;
}
while(right >= 0 && words[right].equals("")){
right–;
}
int mid = left + (right - left) / 2;
while(mid < words.length && words[mid].equals("")){
mid++;
}
if(words[mid].equals(s)){
return mid;
}else if(words[mid].compareTo(s) > 0){
//收缩右边界,锁定左边界
right = mid - 1;
}else if(words[mid].compareTo(s) < 0){
//收缩左边界,锁定右边界
left = mid + 1;
}
}
return -1;
}
}
Q10.9 排序矩阵查找
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix == null || matrix.length == 0) {
return false;
}
int m = matrix.length, n = matrix[0].length, row = 0, col = n - 1;
while (row < m && col >= 0) {
if (matrix[row][col] < target) {
row++;
} else if(matrix[row][col] > target) {
col–;
} else {
return true;
}
}
return false;
}
}
Q10.10 数字流的秩
int[] nums;
public StreamRank() {
nums = new int[50002];
}
public void track(int x) {
// 避免为0
++x;
for (int i = x; i <= nums.length - 1; i += lowBit(i))
nums[i]++;
}
public int getRankOfNumber(int x) {
int sum = 0;
++x;
for (int i = x; i > 0; i -= lowBit(i))
sum += nums[i];
return sum;
}
public int lowBit(int x) {
return x & (-x);
}
Q10.11 峰与谷
贪心,参考题解:
(1)如果i为峰的位置,则判断当前位置是否小于前一个位置(前一个为谷),若小于,则交换,大于则不处理。即: if(nums[i]<nums[i-1]) swap(nums[i],nums[i-1]);
(2)如果i为谷的位置,则判断当前位置是否大于前一个位置(前一个为峰),若大于,则交换,大于则不处理。即: if(nums[i]>nums[i-1]) swap(nums[i],nums[i-1]);
public void wiggleSort(int[] nums) {
/* 对数组排序 O(nlogn)
int[] res = Arrays.copyOf(nums, nums.length);
Arrays.sort(res);
int index = res.length - 1;
for(int i = 0;i < res.length;i += 2) {
nums[i] = res[index–];
小福利:
在当下这个碎片化信息环境的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021大厂最新Android面试真题解析
各个模块学习视频:如数据结构与算法
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
或直接点击这里前往我的GitHub中下载,就可以白嫖啦,记得给文章点个赞哦。
*第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!
或直接点击这里前往我的GitHub中下载,就可以白嫖啦,记得给文章点个赞哦。