京东算法笔试

算这两道题以前都做过吧,第一题斐波拉契的非递归实现,第二题总结递推公式。慢慢积累!

/*****************************************************
* \file     SingletonPatternDemo.cpp
* \date     2016/07/13 18:20
* \author   ranjiewen
* \contact: [email protected]
*****************************************************/

//有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。
//给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。
//测试样例:
//3
//返回:2

#include <iostream>
using namespace  std;

//// 费波纳西数列的非递归解法
class GoUpstairs {
public:
    int countWays(int n) {
        // write code here
        /*if (n == 1)
            return 0;

            else if (n == 2)
            return 1;
            else if (n == 3)
            return 2;
            else
            return (countWays(n - 1) + countWays(n - 2)) % 1000000007;*/
        unsigned long long dp[101] = { 0 };
        dp[2] = 1;
        dp[3] = 2;
        for (int i = 4; i <= n; i++)
        {
            dp[i] = dp[i - 1] + dp[i - 2];
            if (dp[i] > 1000000007)
            {
                dp[i] = dp[i] % 1000000007;   //59以后的数就没有意义了,溢出了。
            }
        }
        return dp[n];
    }
};

int main(int argc, char* argv[])
{
    int  count = 0;
    GoUpstairs s;
    cout << s.countWays(96) << endl;
    //cout << s.dp[96] << endl;
    return 0;
}

//小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)
//给定四个整数A, B, C, D,请返回所求结果。
//测试样例:
//100, 90, 80, 70
//返回:1020

class Balls {
public:
    int calcDistance(int A, int B, int C, int D) {
        // write code here
        return 3 * (A + B + C + D);
    }

    int calcDistance(int A, int B, int C, int D) {
        int result = A + B + C + D;
        return result + distance(A) + distance(B) + distance(C) + distance(D);
    }
private:
    int distance(int n) {
        if (n <= 0)
            return 0;
        int mod = n % 2;
        return n + distance(n / 2) + mod;
    }
};
时间: 2024-11-13 07:59:31

京东算法笔试的相关文章

算法笔试

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

数据结构与算法笔试面试题整理

给出的一些常见的数据结构与算法的笔试面试题,特整理如下,后期遇到新的再更新. 笔试面试题 常见时空复杂度有 常数级复杂度:O(1) 对数级复杂度:O(logN) 线性级复杂度:O(N) 线性对数级复杂度:O(NlogN) 平方级复杂度:O(N2) 冒泡排序算法(重点) (1)算法流程 a.比较两个相邻的元素,如果第一个比第二个大,则交换两个元素的位置: b.对每一对相邻的元素做同样的工作,从开始的第一对一致到结尾的最后一对,经过这一步,最后的元素将是最大值: c.针对所有的元素重复以上步骤,除了

京东校招笔试(C++方向)编程题

这次笔试是今年校招我参加的第一次笔试..出了很多状况,基础知识不扎实,导致选择题耽误了太多时间,导致后面的题目没做完,编程题也没有在 时间内写出来,基本没有面试机会了.不过我继续研究第二个编程题,在10几分钟后做了出来. 这个题目具体已经不记得了,但是大概意思还是记得,我们把由4和7组成的数,按小大排序,例如:4 7 44 47 74 77 444 447 474 477 744 747 774 777 他们的序号依次为1,2,3,4.....,题目的输入是每行输入一个整数,可以很大(好像是最大

二叉树的非递归遍历--京东2015笔试回忆

题目回忆: C/C++研发试卷:偏重于数据结构的考察,编程题有2题+1题附加题: 1.输入整数n,求m,m>9,m中各个数位的乘积=n的最小整数;如n=36,m=49; 2.二叉树前序遍历的非递归实现(本文的总结) 3.求第n个数,这个序列满足(2^i)*(3^j)*(5^k),前7个为:2,3,4,5,6,8,10 .... 小题有基本的数据结构.程序运行结果.SQL题目. 4.删除表格用DROP命令,死锁产生的条件: 4.1互斥使用(资源独占) 一个资源每次只能给一个进程使用 4.2.不可强

京东在线笔试编程题分析

1.计算最小苹果个数 import java.util.Scanner; public class Main { public static int calcuAppleNum(int n) { double num = 0.0d; int intNum = 0; for (int i = 1;; i++) { num = fun(i, n, n); intNum = (int) num; if ((num - intNum) < 10e-9) break; } return intNum; }

微软2014 算法笔试题目1及答案

题目1 : Beautiful String 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 We say a string is beautiful if it has the equal amount of 3 or more continuous letters (in increasing order.) Here are some example of valid beautiful strings: "abc", "cde"

iOS常见算法笔试问题

1. 给出一个由小写字母组成的字符串,把所有连续出现的 2 个 a 替换成 bb ( 2 个 b ),但是对于超过两个连续的 a,那么这些字符都不作替换.例如: bad -> bad (一个a,不替换) baad -> bbbd (替换成bb) baaad -> baaad (连续三个a,不替换) apaapaaapaa -> apbbpaaapbb (这里连续的a出现了4次,只有第二段和最后一段被替换) - (NSString *)replace:(NSString *)str

算法笔试面试题_商场搞活动,满100减30,满200减80,问1000元最多能买多少钱的东西?

解法思路: 1.首先花1000元,返(1000/200)*80 = 400 2.花400元,返(400/200)*80 = 160; 3.借别人40元,手里凑够200元,返80元. 4.还给别人40元,手里还有40元,还能再买40元的东西. 即,总共买了 1000+400+40+160+80-40=1640元. 是不是还有更好的方法?有的话,欢迎指正.

Java程序员从京东、阿里、携程面试回来,已成功拿到京东offer

阿里巴巴(一面) 阿里找了一个前辈内推的,准确来说应该是直推,是他帮我直接录的简历,他本科进的阿里蚂蚁金服,厉害吧?是真的佩服.第一次在官网上填资料,想想马云有多出名,想想蚂蚁金服这样的顶级技术,有些兴奋,有些期待. 录完简历后等待简历评估,原来,找内推不一定能得到面试机会,能不能得到面试机会要经过简历评估(我这才知道,原来内推免笔试可不是那么容易的),毕竟内推能免去在线笔试直接面试,互联网第一梯队像百度.阿里,腾讯的笔试真的很有难度,做过前几年这些公司的笔试题,真的太难了.在阿里的校招群里看到