zoukankan      html  css  js  c++  java
  • 37.数字在排序数组中出现的次数(python)

    题目描述

    统计一个数字在排序数组中出现的次数。
    1 # -*- coding:utf-8 -*-
    2 class Solution:
    3     def GetNumberOfK(self, data, k):
    4         # write code here
    5         count = 0
    6         for i in range(len(data)):
    7             if data[i]==k:
    8                 count+=1
    9         return count

    二分法:

     1 # -*- coding:utf-8 -*-
     2 class Solution:
     3     def GetNumberOfK(self, data, k):
     4         # write code here
     5         def getLeftPos(data,left,right):
     6             while left <= right:
     7                 mid = (left +right)//2
     8                 if data[mid]<k:
     9                     left=mid+1
    10                 else:
    11                     right = mid-1
    12             return left
    13         def getRightPos(data,left,right):
    14             while left <=right:
    15                 mid = (left+right)//2
    16                 if data[mid]<=k:
    17                     left = mid+1
    18                 else:
    19                     right = mid-1
    20             return right
    21         left = 0
    22         right = len(data)-1
    23         leftPos = getLeftPos(data,left,right)
    24         rightPos = getRightPos(data,left,right)
    25         return rightPos-leftPos+1
    26     
  • 相关阅读:
    原型
    构造函数
    异常处理
    逻辑中断
    1. 两数之和
    面向对象(进阶篇)
    面向对象(初级篇)
    面向对象
    迭代器/生成器
    模块&字符格式化
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/12096349.html
Copyright © 2011-2022 走看看