剑指Offer:数字在排序数组中出现的次数Java/Python

1.题目描述

统计一个数字在排序数组中出现的次数。

2.算法描述

数组是有序的。
初始化 l e f t = − 1 , r i g h t = − 1 left = -1, right = -1 left=1,right=1
从左到右找数字 k k k第一次出现的位置 l e f t left left。如果 l e f t = = − 1 left == -1 left==1,说明数组中没有这个数字k,返回0。
从右到左找数字 k k k第一次出现的位置 r i g h t right right.
返回 r i g h t − l e f t + 1 right-left+1 rightleft+1

3.代码描述

3.1.Java代码

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int l = -1;
        int r = -1;
        for(int i=0;i=0;j--)
            if(array[j] == k){
                r = j;
                break;
            }
        return r- l + 1;
    }
}

3.2.Python代码

#人生苦短  我用Python
# -*- coding:utf-8 -*-
class Solution:
    def GetNumberOfK(self, data, k):
        return data.count(k)

你可能感兴趣的:(剑指Offer)