Time complexity--codility
lesson 3: Time complexity
- exercise:
- Problem: You are given an integer n. Count the total of 1+2+...+n.
def sumN(N):
return N*(N+1)//2
1. TapeEquilibrium -----[100%]
Minimize the value
|(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|.
A non-empty zero-indexed array A consisting of N integers is given. Array A represents numbers on a tape.
Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1].
The difference between the two parts is the value of: |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P + 1] + ... + A[N − 1])|
In other words, it is the absolute difference between the sum of the first part and the sum of the second part.
note: 依次求sum
def solution(A):
# write your code in Python 2.7
#left,right =A[0], sum(A)-A[0]
left,right =A[0], sum(A[1:])
result = abs(right - left)
for elem in A[1:-1]:
left,right = left + elem, right - elem
retmp = abs(right - left)
if retmp < result:
result = retmp
return result
2. FrogJmp -----[100%]
Count minimal number of jumps from position X to Y.
A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D.
Count the minimal number of jumps that the small frog must perform to reach its target.
note: O(1) time complexity, 注意是否在边界上,否则加1即可。
def solution(X, Y, D):
# write your code in Python 2.7
if X == Y:
return 0
else:
flag = (Y - X)%D
ret = (Y - X)/D
return ret if flag == 0 else ret + 1
3. PermMissingElem -----[100%]
Find the missing element in a given permutation.
A zero-indexed array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing.
Your goal is to find that missing element.
note:
- 简单思路是排序,然后依此比较是否是增1关系,也可以用求sum的方式
- 注意边界条件,N取值[0,100,000], 元素取值[1,N+1],
- 故当没有元素的时候,返回1;当只有一个元素的时候,需要考虑元素是否是1
- 当全部有序的时候,考虑最后元素+1返回。
def solution(A):
# write your code in Python 2.7
if len(A) == 0:
return 1
elif len(A) == 1:
return A[0]+1 if A[0] == 1 else A[0] -1
A.sort()
left = A[0]
for elem in A[1:]:
if elem == left + 1:
left = elem
continue
else:
return left + 1
return A[-1]+1 if A[0] == 1 else A[0]-1
def solution(A):
# write your code in Python 2.7
length = len(A)
if length < 1:
return 1
#elif length < 2: # can belong to the next tatal_sum
# return 1 if A[0]==2 else 2
tatal = sum([i for i in xrange(1,length+2,1) ])
tmp = sum(A)
return tatal - tmp
Time complexity--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 ...
- [codility] Lession1 - Iterations - BinaryGap
Task1: A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is ...
- 用Codility测试你的编码能力
没有宏观的架构设计,没有特定的框架语言.在Codility提出的一些小问题上,用最纯粹的方式测试你最基本的编码能力. Codility第一课:算法复杂度 各种算法书的开篇大多是算法分析,而复杂度(co ...
- the solution of CountNonDivisible by Codility
question:https://codility.com/programmers/lessons/9 To solve this question , I get each element's di ...
- Instant Complexity - POJ1472
Instant Complexity Time Limit: 1000MS Memory Limit: 10000K Description Analyzing the run-time comple ...
- Runtime Complexity of .NET Generic Collection
Runtime Complexity of .NET Generic Collection I had to implement some data structures for my compu ...
- Examples of complexity pattern
O(1):constant - the operation doesn't depend on the size of its input, e.g. adding a node to the tai ...
- 空间复杂度是什么?What does ‘Space Complexity’ mean? ------geeksforgeeks 翻译
这一章比较短! 空间复杂度(space complexity)和辅助空间(auxiliary space)经常混用,下面是正确的辅助空间和空间复杂度的定义 辅助空间:算法需要用到的额外或者暂时的存储空 ...
随机推荐
- 1-25-循环控制符break、continue和函数详解
大纲: 1-for循环补充 1-1-for循环实战---类C格式应用 2-break.continue循环控制符 2-1实战:帮助理解break.continue作用 3-函数详解 3-1.脚本文件中 ...
- torch Tensor学习:切片操作
torch Tensor学习:切片操作 torch Tensor Slice 一直使用的是matlab处理矩阵,想从matlab转到lua+torch上,然而在matrix处理上遇到了好多类型不匹配问 ...
- Regression 手动实现Gradient Descent
import numpy as np import matplotlib.pyplot as plt x_data = [338.,333.,328.,207.,226.,25.,179.,60.,2 ...
- tensorflow入门(二)
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt #使用numpy生成200个随机点 x_data ...
- 变更Linux下的Java版本 alternatives
默认正常情况下,即使使用Java 1.6版本Java脚本jdk-6u31-linux-i586.bin,安装Java运行后,会出现自动升级为1.7版本状态的情况.针对某些应用程序需要基于1.6版本方可 ...
- Linux安装apue.3e(基于ubuntu16.0.4)
本菜刚刚学习UNIX高级编程,无奈搭建本书编程环境时遇到不少问题,参考了网上各路大神的解决办法,最终解决了问题. (1)下载源代码,可以去官网下载:http://apuebook.com/code3e ...
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
<html> <head> <title>Js日期选择器并自动加入到输入框中</title> <meta http-equiv="con ...
- mac下解决mysql乱码问题
问题描述:在window平台下面数据库插入.已经查找都是很正常的,但是到mac下面查找.插入就不正常了,之后感觉是mysql的问题然后网上搜索学习了下,果然是mysql的问题.解决方案:首先你要先去看 ...
- JQuery遍历CheckBox踩坑记
$("#checkbox_id").attr("checked"); //获取一个CheckBox的状态(有没有被选中,返回true/false) $(&quo ...
- _routing字段介绍
一个document通过以下公式被路由到该索引下一个特定的分片: shard_num = hash(_routing) % num_primary_shards _routing的默认值是文档的_id ...