智力题
数量关系
推理判断
JAVA
力扣
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
public class Aaa {
public static void main(String[] strs) {
if(strs.length == 0)
return "";
String a = strs[0];
for(int i =1;i<strs.length;i++) {
int j=0;
for(;j<a.length() && j < strs[i].length();j++) {
if(a.charAt(j) != strs[i].charAt(j))
break;
}
a = a.substring(0, j);
if(a.equals(""))
break;
}
}
}
当字符串数组长度为 0 时则公共前缀为空,直接返回
令最长公共前缀a 的值为第一个字符串,进行初始化
遍历后面的字符串,依次将其与 a 进行比较,两两找出公共前缀,最终结果即为最长公共前缀
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
import java.util.Scanner;
public class Aaa{
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
System.out.println("nums:");
nums[ ]arr = input.nextNums();
System.out.println("val:");
int val = input.nextInt();
int i = 0;
for (int j = 0; j < nums.length; j++) {
if (nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
System.out.println(nums[]);
}
}
一个一个进行比较 ,如果不相等的时候nums[i]=nums[j];
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner input = new Scanner(Systen.in);
System.out.println("Strs and num");
Strs[]arr = input.nextStrs();
int mun = input.nextNum();
int left = 0, right = Strs.length - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(Strs[mid] == mun) {
return mid;
} else if(Strs[mid] < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
}
}
利用二分法去找目标值