leetcode-在排序数组中查找数字 I-51

Posted 天津 唐秙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-在排序数组中查找数字 I-51相关的知识,希望对你有一定的参考价值。

题目要求
  统计一个数字在排序数组中出现的次数。
思路
  将数组进行排序,这块虽然题目已经说过是有序数组,但是我们为了增加代码的能力,手动添加了一个排序,然后遍历数组找目标值,如果没有返回0,如果有,统计目标值和目标值的下一位,直到找到下一位和目标值不同的值,统计目标值出现的次数。

代码实现

#include <algorithm>
class Solution {
public:
	int search(vector<int>& nums, int target) {
		if (nums.size() == 0)
			return 0;

		sort(nums.begin(), nums.end());
		int i = 0;
		while (i < nums.size() && nums[i] != target)
			i++;
		if (i >= nums.size())
			return 0;
		int j = i + 1;
		int total = 1;
		while (j < nums.size() && nums[i] == nums[j])
		{
			j++;
			total++;
		}
		return total;
	}
};

以上是关于leetcode-在排序数组中查找数字 I-51的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I

在排序数组中查找数字_LeetCode

[LeetCode]面试题53 - I. 在排序数组中查找数字 I(二分)

LeetCode(剑指 Offer)- 53 - I. 在排序数组中查找数字 I

LeetCode(剑指 Offer)- 53 - I. 在排序数组中查找数字 I

LeetCode 剑指Offer 53 - I 在排序数组中查找数字I[二分法] HERODING的LeetCode之路