codility之FrogJmp

codility是什么?

codility 是一个在线测试的网站–“We test coders”。

有些外企的技术职位都会有要求上级测试的,codility上目前也开放了一些lessons去供练习。

整体难度我觉得很适合我这种的新手去练习。

codility网站

lessons链接

FrogJmp

FrogJmp是lesson 1的第一道题目,整体难度很低。

题目大致是说给定步长D,求从X到Y之间需要的步数。

要求:

时间复杂度、空间复杂度为O(1)。

如何解决?

不难想到之间拿Y减去X的距离,除以D,余数加1就应该是所需的步长了。

但这里直接拿余数加1是不对的,因为当整除的情况下是不需要多加1的,所以整除的情况下我们是需要特殊处理下。

代码如下

PHP

function solution($X, $Y, $D) {
    // write your code in PHP5
    
    $count = (int)(($Y - $X) / $D);
    if (($Y - $X) % $D != 0)
        $count += 1;
    return $count;
}

Python

def solution(X, Y, D):
    # write your code in Python 2.7
    count = (Y - X) / D
    if((Y - X) % D) != 0:
        count += 1

    return count

codility交流群

新建了一个QQ群codility(315615065), 可以直接搜索codility关键字,也可以输入群号查找。

刚建立,主要是想一块学习算法、刷题目的同学咱们一起交流、学习下哈。

Leave a Reply

Your email address will not be published. Required fields are marked *


To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax