首页 > 编程语言 >力扣 35.搜索插入位置 58.最后一个单词的长度(java)

力扣 35.搜索插入位置 58.最后一个单词的长度(java)

时间:2023-01-07 21:56:18浏览次数:39  
标签:index arr return 58 int 代码 35 java String

这是刷题的第2天

 

 第一反应是java有没有提供相应的方法,网上搜了后,用了binarySearch。他这个方法用的也是二分查找,符合题目的时间复杂度,但我一直在想如果数组元素重复怎么办,这个方法返回的值不唯一,一直在纠结,想了半天,发现提示那里写了输入的nums为无重复的元素,自己没有好好审题。。所以直接用binarySearch秒了。

代码如下:

public int searchInsert(int[] nums, int target){
int index = Arrays.binarySearch(nums,target);
if(index < 0){ return Math.abs(index) - 1; }
else{ return index; }
}
结果如下:

 

 看了题解,基本都是用二分查找。

 

 

 一开始想的是直接用正则匹配空格,字符串以空格来分成数组。但是提交以后,代码是通过了,但是时间效率很低,用了2ms,击败了百分之八的人,可能是因为用了s.trim().split()的缘故。

代码如下:

public int lengthOfLastWord(String s) {
String[] arr = s.trim().split("\\s+");
return arr[arr.length-1].length();
}
看了题解以后,思路是从后往前遍历,时间复杂度只有O(n),修改了代码,时间击败百分之百,速度提高了很多。
代码如下:
public int lengthOfLastWord2(String s){
int num = 0;
String arr = s.trim();
for(int i=arr.length()-1; i >= 0; i--){
Character ch = arr.charAt(i);
if(ch.equals(' ')){
break;
}
else{ num += 1; }
}
return num;

标签:index,arr,return,58,int,代码,35,java,String
From: https://www.cnblogs.com/hesy0530/p/17032957.html

相关文章

  • JavaScript学习笔记—使用字面量创建数组
    语法:[]//元素为数字vararr=[1,2,3,6,10];//元素可以是任意数据类型vararr2=["hello",1,true,null,undefined];//也可以是对象varobj={name:"孙悟空......
  • JavaScript学习笔记—数组length属性
    length属性返回数组的长度(数组元素的个数)。语法:数组.length/**连续的数组,可以获取数组长度(元素个数)*非连续的数组,获取数组最大索引+1*/vararr=[1,4,10];arr......
  • JavaScript学习笔记—构造函数
    执行流程:1.立刻创建一个新的对象2.将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象3.逐行执行函数中的代码4.将新建的对象作为返回值返回通......
  • JavaScript学习笔记—原型对象prototype
      创建的每个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象就是我们所谓的原型对象。  函数作为普通函数调用prototype没有任何作用  当函......
  • JavaScript学习笔记—声明
    (1)变量声明提前使用var关键字声明的变量,会在所有代码执行前被声明(但不会赋值)console.log("a="+a);//a已声明,但是值是undefinedvara=123;如果声明变量时不使用v......
  • JavaScript学习笔记—this的使用
      解析器调用函数时每次都会向函数传递进一个隐含的参数this,this指向的是一个对象,这个对象称为函数执行的上下文对象。  根据函数的调用方式不同,this会指向不同的对象......
  • JavaScript学习笔记—对象的方法
    对象的属性值可以是任何的数据类型,也可以是个函数如果函数作为对象的属性保存,那这个函数是这个对象的方法,调用函数就是调用对象的方法varobj=newObject();//向对象......
  • 第一天开始学习Java--准备工作
    注册博客园养成一个做笔记的好习惯Markdown学习--Typora标题--(#+空格+标题)几个#表示几级标题(最多六个)字体粗体:**字体**斜体:*字体*斜体加粗:字体(两边三个*)删除......
  • JavaScript学习笔记—函数的参数
    (1)如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined//函数,a和b叫形参functionsum(a,b){console.log("a="+a);console.log("b="+b);consol......
  • JavaScript学习笔记—基本数据类型和引用数据类型
    基本数据类型:String、Number、Boolean、Null、Undefined引用数据类型:ObjectJS中的变量都是保存到栈内存中的  基本数据类型的值直接在栈内存中存储,值与值之间是独立......