Arrays--codility
lesson 2: Arrays
- exercise:
- Problem: Given array A consisting of N integers, return the reversed array.
def myreverse(A):
length = len(A)
for i in xrange(length//2):
A[i], A[length -i-1] = A[length - i-1], A[i]
return A
1. CyclicRotation------[100%]
Rotate an array to the right by a given number of steps.
A zero-indexed array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is also moved to the first place.
For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7]. The goal is to rotate array A K times; that is, each element of A will be shifted to the right by K indexes.
def re_enumerate(seq):
n = -1
length = len(seq)
for elem in reversed(seq):
yield length + n, elem
n = n - 1
def solution(A, K):
# write your code in Python 2.7
length = len(A)
if length < 2:
return A
shift_times = K%length
#print shift_times
tmp= A[-shift_times:]
#print tmp
tmp.extend(A[:- shift_times])
return tmp
#for idx, ai in re_enumerate(A):
# if idx >= shift_times:
# A[idx] = A[idx-shift_times]
#
# else:
# A[idx] = tmp[idx]
#return A
- 要注意边界条件,考虑数组的长度少于旋转的次数,以及只有一个元素和数组为空
- 当有除法的时候,注意是否除以零
def solution(A, K):
# write your code in Python 2.7
length = len(A)
#print length
#print K
if K == 0 or length == 0 or length == 1:
return A
if K > length:
K %= length
#print K
tmp = [0]*K
#print tmp
for i in xrange(K):
tmp[i] = A[length - K + i]
tmp.extend(A[:-K])
return tmp
2. OddOccurrencesInArray ---[100%]
Find value that occurs in odd number of elements.
A non-empty zero-indexed array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired.
For example, in array A such that:
A[0] = 9 A[1] = 3 A[2] = 9
A[3] = 3 A[4] = 9 A[5] = 7
A[6] = 9
- the elements at indexes 0 and 2 have value 9,
- the elements at indexes 1 and 3 have value 3,
- the elements at indexes 4 and 6 have value 9,
- the element at index 5 has value 7 and is unpaired.
解题思路:
- 将数组排序,相同的数会在一起,比较前后两个数是否相同
- 偶数个数的,继续测试下一个数,找到单独的一个数,返回
- 当直到数组最后,还有没有找到单独的一个元素,我们得返回最后一个元素,因为我们统计的一直的是last 元素
- 注意临界条件,只有一个元素
- O(N)时间复杂度
def solution(A):
# write your code in Python 2.7
if len(A) == 1:
return A[0]
A.sort()
#print A
last_a,cnt = A[0],1
#print last_a
for ai in A[1:]:
if ai == last_a:
cnt += 1
else:
if cnt%2 != 0:
return last_a
last_a,cnt = ai,1
return A[-1]
def solution(A):
# write your code in Python 2.7
if len(A) < 2:
return A[0]
A.sort()
last_a, cnt = A[0], 1
for a in A[1:]:
if last_a == a:
cnt += 1
else:
if cnt%2 == 0 :
last_a, cnt = a, 1
else:
return last_a
return A[-1]
Arrays--codility的更多相关文章
- Codility NumberSolitaire Solution
1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from ...
- codility flags solution
How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers i ...
- GenomicRangeQuery /codility/ preFix sums
首先上题目: A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which ...
- Java程序员的日常—— Arrays工具类的使用
这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...
- 使用 Arrays 类操作 Java 中的数组
Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等(关于类和方法的相关内容在后面的章节中会详细讲解滴 ...
- 【转】java.util.Arrays.asList 的用法
DK 1.4对java.util.Arrays.asList的定义,函数参数是Object[].所以,在1.4中asList()并不支持基本类型的数组作参数. JDK 1.5中,java.util.A ...
- System.arraycopy()和Arrays.copyOf()的区别
先看看System.arraycopy()的声明: public static native void arraycopy(Object src,int srcPos, Object dest, in ...
- 计算机程序的思维逻辑 (31) - 剖析Arrays
数组是存储多个同类型元素的基本数据结构,数组中的元素在内存连续存放,可以通过数组下标直接定位任意元素,相比我们在后续章节介绍的其他容器,效率非常高. 数组操作是计算机程序中的常见基本操作,Java中有 ...
- No.004:Median of Two Sorted Arrays
问题: There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the ...
- [LeetCode] Intersection of Two Arrays II 两个数组相交之二
Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...
随机推荐
- addEventListener 和 onclick 简单比较
首先说一下addEventListener 语法: element.addEventListener(event, function, useCapture) 这里的event是事件名,functio ...
- 2793 [Poi2012]Vouchers
我们直接模拟就可以了= = now[x]表示x的倍数已经取到x * i了,于是每次读入x,直接向上枚举x个没取过的数即可. /************************************* ...
- poj2195
题解: 简单KM 把每一个男的和房子分离 代码: #include<cstdio> #include<cmath> #include<algorithm> #inc ...
- hdu 1817 Necklace of Beads(Polya定理)
Necklace of Beads Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 初次使用VCS仿真软件
由于刚开始接触VCS,对于VCS不是太了解,在网上找了很多的资料终于遇到了一个相对比较初级的入门资料,这个资料是以一个简单的4位加法器为例来介绍vcs的用法的,比较好入门,这个文章的地址如下: htt ...
- vue.js 源代码学习笔记 ----- observe
参考 vue 2.2.6版本 /* @flow */ //引入订阅者模式 import Dep from './dep' import { arrayMethods } from './array' ...
- DataTable和实体类通过反射相互转换
using System.Runtime.Serialization; using System.Data; using System.Reflection; using System.Collect ...
- 用JQuery怎么去一次性获取 aspTextBox 文本框的值
如:<asp:TextBox ID="txtSubject" runat="server">aa</asp:TextBox> 第一次用服 ...
- device-independent bitmap (DIB) 设备无关位图
设备无关位图即独立于设备的位图(DIB)与"Device-Dependent Bitmaps (DDB) 设备相关位图"相比,它不再依赖于具体的设备,从而更适合在不同的计算机之间传 ...
- chrome 55 zepto tap事件出错?
刚才升级chrome后发现的,在54.0.2840.98上点击没有问题,在新升级的55.0.2883.75 上点击后会报错Cannot read property 'trigger' of undef ...