目录
35. 搜索插入位置
思路
代码
58. 最后一个单词的长度
思路1
代码1
思路2
代码2
35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:输入: nums = [1,3,5,6], target = 7
输出: 4
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/search-insert-position
思路
本题简单,唯一需注意的点是:目标值不存在于数组中时,返回它将会被按顺序插入的位置(按升序),如
示例 2:
输入: nums = [1,3,5,6], target = 2
输出: 1
所以我创建了count变量,利用他来解决这样的情况(本题数组为排序数组)
每走一位都和目标值比较一下,元素比目标值小count就++,(count从0开始,这样count的值直接就是该目标值所插入的下标)
代码
int searchInsert(int* nums, int numsSize, int target)
{
int i = 0;
int count = 0;
for(i = 0; i < numsSize; i++)
{
if(nums[i] == target)
{
return i;
}
if(nums[i] < target)
{
count++;
}
}
return count;
}
58. 最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。
示例 2:输入:s = " fly me to the moon "
输出:4
解释:最后一个单词是“moon”,长度为4。
示例 3:输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为6的“joyboy”。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/length-of-last-word
思路1
暴力解题
i 从最后一位来
由这个例子我们知道,最后一个单词后面会有空格这种情况,我们需把空格跳过,
示例 2:
输入:s = " fly me to the moon "
输出:4
之后创建了count变量来计数,注意while循环里i > 0,不然会溢出,力扣会报错
因为以上没有i = 0;情况(应对"a"这样的),所以要填上,
注意s[i] 不能 等于 ' '(防止这种情况" ab")
这几个代码块循序可不能变
代码1
int lengthOfLastWord(char* s)
{
int len = strlen(s);
int i = len - 1;
int count = 0;
while (s[i] == ' ')
{
i--;
}
while (s[i] != ' ' && i > 0)
{
i--;
count++;
}
if (i == 0 && s[i] != ' ')
{
count++;
}
return count;
}
思路2
第二种代码更简洁一点,利用了for循环,循环条件写对,就不用考虑溢出情况,
还是从后面开始(i = len - 1),创建count变量来计数,s[i] != ' ',count++;
下面的代码我觉得满巧妙的(o゜▽゜)o☆
如果s[i] == ' '并且count != 0,这个并且就很巧妙ヾ(≧▽≦*)o,
count != 0,就说明这是已经经过了一个单词之后才遇到的空格,就该跳出循环啦,之后返回count就行了
代码2
int lengthOfLastWord(char* s)
{
int len = strlen(s);
int i = len - 1;
int count = 0;
for(i = len - 1; i >= 0; i--)
{
if(s[i] != ' ')
{
count++;
}
if(s[i] == ' ' && count != 0)
{
break;
}
}
return count;
}
╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯完╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯