个性化阅读
专注于IT技术分析

查找奇数次出现的数字的Python程序

本文概述

给定一个正整数数组。所有数字均出现偶数次, 只有一个数字出现奇数次。在O(n)时间和恒定空间中找到数字。

例子 :

Input : arr = {1, 2, 3, 2, 3, 1, 3} Output : 3 Input : arr = {5, 7, 2, 7, 5, 2, 5} Output : 5

Python3

# Python program to find the element occurring # odd number of times # function to find the element occurring odd # number of times def getOddOccurrence(arr, arr_size): for i in range ( 0 , arr_size): count = 0 for j in range ( 0 , arr_size): if arr[i] = = arr[j]: count + = 1 if (count % 2 ! = 0 ): return arr[i] return - 1 # driver code arr = [ 2 , 3 , 5 , 4 , 5 , 2 , 4 , 3 , 5 , 2 , 4 , 4 , 2 ] n = len (arr) print (getOddOccurrence(arr, n)) # This code has been contributed by # Smitha Dinesh Semwal

输出如下:

5

一种更好的解决方案是使用哈希。使用数组元素作为键, 并将其计数作为值。创建一个空的哈希表。一对一遍历给定的数组元素并存储计数。该解决方案的时间复杂度为O(n)。但是它需要额外的空间来进行哈希处理。

程序:

python

# Python program to find the element occurring odd number of times def getOddOccurrence(arr): # Initialize result res = 0 # Traverse the array for element in arr: # XOR with the result res = res ^ element return res # Test array arr = [ 2 , 3 , 5 , 4 , 5 , 2 , 4 , 3 , 5 , 2 , 4 , 4 , 2 ] print "% d" % getOddOccurrence(arr)

输出如下:

5

请参考完整的文章查找出现次数的奇数更多细节!

赞(0)
未经允许不得转载:srcmini » 查找奇数次出现的数字的Python程序

评论 抢沙发

评论前必须登录!