摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路 1)自然而然的思路:二进制数最后一位和1与运算,是1返回1,是0返回0;然后,右移一位【负数会引起死循环】 但是,在计算机中负数以补码存储时,符号位为1,右移最高位补1,最后会死循环(0xFFFFFFFF) 解决办法有 阅读全文
posted @ 2017-04-23 22:48 gleesu 阅读(231) 评论(2) 推荐(0) 编辑
摘要: 题目描述:Fibonacci 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n=2,F[0]=0,F[1]=1)` 递归很容易栈溢出,采用迭代 代码: java //迭代 public static int fibonacciNew(int n){ if(n 阅读全文
posted @ 2017-04-23 06:54 gleesu 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 压入元素直接压入stack1 删除元素先查看stack2是否为空,非空则弹出;空则将stack1中元素取出,置于stack2中 代码: 阅读全文
posted @ 2017-04-23 05:54 gleesu 阅读(7034) 评论(1) 推荐(0) 编辑
摘要: 题目描述: 输入一个链表,从尾到头打印链表每个节点的值。 基本思路: 通常,不允许改变链表原有结构 1)后进先出 栈 2)递归:本质上就是栈结构;但,链表很长时,函数调用层级很深,容易导致函数调用栈溢出 3)牛客上返回ArrayList,所以使用两个AL,新旧复制 总结: stack用法: push 阅读全文
posted @ 2017-04-23 03:16 gleesu 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 基本思路: 从右上开始, 如果targetarray[row][column],row++; 思考 实现: 阅读全文
posted @ 2017-04-23 02:03 gleesu 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 基本思路: 逆序替换,降低时间复杂度 实现方案: String一旦初始化,无法改变。 使用StringBuffer,是因为牛客网的模 阅读全文
posted @ 2017-04-23 01:54 gleesu 阅读(4049) 评论(0) 推荐(0) 编辑