文档章节

LintCode---GreyCode

柳初心
 柳初心
发布于 2017/06/04 21:45
字数 108
阅读 7
收藏 0
public class Solution {
    public ArrayList<Integer> grayCode(int n) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        if (n <= 1) {
            for (int i = 0; i <= n; i++){
                result.add(i);
            }
            return result;
        }
        result = grayCode(n - 1);
        //根据案例将低位的值反转。
        ArrayList<Integer> r1 = reverse(result);
        //将最高位改成1.
        int x = 1 << (n-1);
        for (int i = 0; i < r1.size(); i++) {
            r1.set(i, r1.get(i) + x);
        }
        result.addAll(r1);
        return result;
    }
    
    public ArrayList<Integer> reverse (ArrayList<Integer> r) {
        ArrayList<Integer> rev = new ArrayList<Integer>();
        for (int i = r.size() - 1; i >= 0; i--) {
            rev.add(r.get(i));
        }
        return rev;
    }
}

© 著作权归作者所有

共有 人打赏支持
柳初心
粉丝 0
博文 31
码字总数 15977
作品 0
南昌
私信 提问
JavaScript数据结构与算法(链表)

去年4,5月份得时候看过Vue得源码。没记错的话其中的Cache类应该就是用链表实现的. 虽然用得不多但是作为数据结构的的重要组成部分,掌握它也是非常有必要的,下面主要以单链表进行说明. 开始...

fiveoneLei
07/13
0
0
JavaScript数据结构与算法(串)

KMP算法 例如一个字符串有30W个字符判断是否存在"I am Chinese". 类似这样的查找字符的毫无疑问需要使用. 算法由二个部分组成. 获取查找串的部分匹配表PMT 源串根据PMT进行回滚 回滚位数 = ...

fiveoneLei
05/30
0
0
微软SDE面经(电面+onsite)

本人工作1年多了,正在准备跳槽中。刚刚参加完微软西雅图的面试,来分享一下自己的面试过程。一共7轮面试,其中1轮电面,6轮Onsite。 第一轮 电面1 第一轮是电面,先是让自我介绍,然后根据简...

abcdd1234567890
2017/06/14
0
0
JavaScript数据结构与算法(栈)

表达式求值 编写一个算法求出表达式值, 例如表达式的值为 很容易想到使用栈来解决,建立二个栈操作符栈和操作数栈.比较栈顶操作符符和当前操作符的优先级.如果高则操作符栈出栈,操作数栈弹出...

fiveoneLei
05/31
0
0
快手 Android 工程师面经

看着我把简历投完之后弹出的“完成”字样,我就十分的激动了,我是一名应届毕业生,老老实实的那种,学过的知识我都一步一个脚印的复习的完了,Lintcode上该刷的题,也妥妥的完成了,但是一想...

Winnielyn
2017/07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部