剑指Offer之Java算法习题精讲数组与字符串
作者:明天一定. 时间:2021-05-24 19:21:45
题目一
解法
class Solution {
public int findLengthOfLCIS(int[] nums) {
if(nums.length==1) return 1;
int fast = 1;
int tmp = 1;
int max = Integer.MIN_VALUE;
while(fast<nums.length){
if(nums[fast]>nums[fast-1]){
tmp++;
max = Math.max(max,tmp);
}else{
max = Math.max(max,tmp);
tmp = 1;
}
fast++;
}
return max;
}
}
题目二
解法
class Solution {
public boolean validPalindrome(String s) {
int left = 0;
int right = s.length()-1;
while(left<right){
if(s.charAt(left)==s.charAt(right)){
left++;
right--;
}else{
String tmp = s.substring(left, right + 1);
return validPalindrome(tmp,1,tmp.length()-1)||validPalindrome(tmp,0,tmp.length()-2);
}
}
return true;
}
public boolean validPalindrome(String s, int low, int high) {
for (int i = low, j = high; i < j; ++i, --j) {
char c1 = s.charAt(i), c2 = s.charAt(j);
if (c1 != c2) {
return false;
}
}
return true;
}
}
题目三
解法
class Solution {
public double findMaxAverage(int[] nums, int k) {
int w = nums.length-k;
int max = Integer.MIN_VALUE;
for(int i = 0;i<=w;i++){
int res = 0;
for(int j = 0;j<k;j++){
res = nums[i+j]+res;
}
max = Math.max(max,res);
}
double ans = (double)max/k;
return ans;
}
}
题目四
解法
class Solution {
public int findShortestSubArray(int[] nums) {
int[] n = new int[50001];
for(int i = 0;i<nums.length;i++){
n[nums[i]]+=1;
}
int max = Integer.MIN_VALUE;
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0;i<n.length;i++){
max = Math.max(n[i],max);
}
for(int i = 0;i<n.length;i++){
if(n[i]==max){
list.add(i);
}
}
int min = Integer.MAX_VALUE;
for(int i = 0;i<list.size();i++){
int res = list.get(i);
int left = 0;
int right = nums.length-1;
while(nums[left]!=res){
left++;
}
while(nums[right]!=res){
right--;
}
min = Math.min(min,right-left+1);
}
return min;
}
}
来源:https://blog.csdn.net/wai_58934/article/details/123282362
标签:Java,数组,字符串
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
eclipse 中的javac命令与java命令
2023-08-19 14:16:57
![](https://img.aspxhome.com/file/2023/2/67622_0s.png)
RocketMQ生产者调用start发送消息原理示例
2022-07-05 20:13:04
![](https://img.aspxhome.com/file/2023/2/63692_0s.png)
Java Bean 作用域及它的几种类型介绍
2022-12-02 20:39:42
![](https://img.aspxhome.com/file/2023/9/75479_0s.png)
MyBatis全局配置文件详解
2021-09-19 10:13:32
![](https://img.aspxhome.com/file/2023/3/69093_0s.png)
C# 添加、修改和删除PDF书签的实例代码
2022-09-24 06:45:55
![](https://img.aspxhome.com/file/2023/4/68614_0s.png)
springcloud eureka切换nacos的配置方法
2022-05-19 01:58:47
详解SpringBoot的事务管理
2022-01-15 13:39:26
![](https://img.aspxhome.com/file/2023/0/74750_0s.png)
Java 中如何使用 stream 流
2021-10-09 01:13:37
spring springMVC中常用注解解析
2023-09-14 20:45:46
Java 常量池的实例详解
2023-12-04 00:51:28
IDEA新建springboot项目时未生成pom.xml文件的解决操作
2022-08-22 03:16:31
![](https://img.aspxhome.com/file/2023/8/62518_0s.png)
浅谈Java如何实现一个基于LRU时间复杂度为O(1)的缓存
2022-02-02 08:35:36
Java8 用Lambda表达式给List集合排序的实现
2023-02-05 17:27:09
Java与Kotlin互调原理讲解
2023-08-19 00:07:41
![](https://img.aspxhome.com/file/2023/1/67681_0s.png)
SpringBoot集成vue的开发解决方案
2023-11-24 20:58:10
![](https://img.aspxhome.com/file/2023/8/59028_0s.png)
详解Java并发包中线程池ThreadPoolExecutor
2022-03-23 19:57:20
![](https://img.aspxhome.com/file/2023/9/64389_0s.png)
教你用JAVA写文本编辑器(四)
2023-10-18 18:30:16
Android异常 java.lang.IllegalStateException解决方法
2023-07-28 10:26:36
Spring钩子接口汇总分析使用示例
2022-09-24 23:29:56
JAVA通过Filter实现允许服务跨域请求的方法
2022-08-02 02:17:46