梦开始的地方
第一天没什么好说的,都是经典的老题目,一遍过
实习下班太累了,9.30到家,附加题就不写了,看周末有时间得补上
上下班通勤都得花3个小时,得找些方法把这些时间利用起来,在公交车上做什么好呢?
再次编辑:
哦,原来博客是这样写的,需要贴上题目和代码,第一次写,看来别人的才知道是这样的,那我加上吧
LEETCODE 27. 移除元素
给你一个数组 nums
和一个值 val
,你需要 原地 移除所有数值等于 val
的元素。元素的顺序可能发生改变。然后返回 nums
中与 val
不同的元素的数量。
假设 nums
中不等于 val
的元素数量为 k
,要通过此题,您需要执行以下操作:
- 更改
nums
数组,使nums
的前k
个元素包含不等于val
的元素。nums
的其余元素和nums
的大小并不重要。 - 返回
k
class Solution {
public:
int removeElement(vector<int>& nums, int val)
{
int left = 0,fast = 0 ;
for(;fast < nums.size(); fast++)
{
if(nums[fast] != val)
{
nums[left] = nums[fast];
left++;
}
}
return left;
}
};
if中是用fast进行判断,之前老是写成left,这是没有考虑到是用fast对数组进行遍历,以后要多注意
LEETCODE 704. 二分查找
class Solution {
public:
int search(vector<int>& nums, int target)
{
int left,right,mid;
left = 0;
right = nums.size() - 1;
while(left <= right)
{
mid = (left + right)/2;
if(target < nums[mid])
{
right = mid - 1;
}
else if(target > nums[mid])
{
left = mid + 1;
}
else if(target == nums[mid])
{
return mid;
}
}
return -1;
}
};
二分查找使用左闭右闭法写的