剑指offer
wwwtotoro
找一个无人的地方,自说自话
展开
-
剑指Offer学习之面试题13 :在O(1)时间删除链表结点
package com.www.OfferToSword;public class Solution13 { public static class ListNode { int value; ListNode next; } public static void main(String[] args) { // TODO Auto-generated method st原创 2017-05-27 22:42:30 · 173 阅读 · 0 评论 -
剑指Offer学习之面试题14 :调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。这个题目要求把奇数放在数组的前半部分, 偶数放在数组的后半部分,因此所有的奇数应该位于偶数的前面。也就是说我们在扫描这个数组的时候, 如果发现有偶数出现在奇数的前面,我们可以交换它们的顺序,交换之后就符合要求了。因此我们可以维护两个指针,第一个指针初始化时指向数组的第一原创 2017-05-27 22:49:44 · 262 阅读 · 0 评论 -
剑指Offer学习之面试题15 :链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6 个结点,从头结点开始它们的值依次是1 、2、3、4、5 、6。这个个链表的倒数第3 个结点是值为4 的结点.解题思路:为了实现只遍历链表一次就能找到倒数第k 个结点,我们可以定义两 个指针。第一个指针从链表的头指针开始遍历向前走k-1步,原创 2017-05-27 22:50:47 · 162 阅读 · 0 评论 -
字符串去重 java
字符串去重且字符出现的先后顺序不变 java实现package com.www.test;import java.util.LinkedHashSet;import java.util.Scanner;public class a1 { /** * @param args */ public static void main(String[] args) { //原创 2017-09-24 10:40:07 · 1798 阅读 · 0 评论 -
数字串重排后输出最小数据 java
输入一串数字,重新排列后输出最小数据,0不能再第一位。package com.www.huawei;import java.util.Arrays;import java.util.Scanner;public class a1 { public static void main(String[] args) {// Scanner sc=new Scan原创 2017-09-24 11:48:04 · 619 阅读 · 0 评论 -
两个栈实现队列+两个队列实现栈 java
两个栈实现队列:import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public voi...原创 2017-12-29 10:34:04 · 165 阅读 · 0 评论 -
2018科大讯飞校招---争吵
题目描述:有 n 个人排成了一行队列,每个人都有一个站立的方向:面向左或面向右。由于这 n 个人中每个人都很讨厌其他的人,所以当两个人面对面站立时,他们会发生争吵,然后其中一个人就会被踢出队列,谁被踢出队列都是有可能的。我们用字符 L 来表示一个面向左站立的人,用字符 R 来表示一个面向右站立的人,那么这个队列可以用一个字符串描述。比如 RLLR 就表示一个四个人的队列,其中第一个人和原创 2018-01-08 18:53:02 · 2609 阅读 · 0 评论 -
剑指Offer学习之面试题2 : 实现Singleton 模式
题目:设计一个类,我们只能生成该类的一个实例package com.www.OfferToSword;//懒汉式单例模式public class Singleton2 { private static Singleton2 instance = null; private Singleton2() { } public static Singleton2 getInstanc原创 2017-05-27 22:15:40 · 237 阅读 · 0 评论 -
剑指Offer学习之面试题3 :二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。package com.www.OfferToSword;public class Solution3 { public boolean Find(int[][] array,int target){ int原创 2017-05-27 22:20:25 · 314 阅读 · 0 评论 -
剑指Offer学习之面试题4 : 替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。package com.www.OfferToSword;import java.util.Arrays;public class Solution4_1 { public String replaceSpace1(String str)原创 2017-05-27 22:22:42 · 412 阅读 · 0 评论 -
剑指Offer学习之面试题6 :重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如:前序遍历序列{ 1, 2, 4, 7, 3, 5, 6, 8}和中序遍历序列{4, 7, 2, 1, 5, 3, 8,6},重建出下图所示的二叉树并输出它的头结点。代码如下:package com.www.OfferToSword;public class原创 2017-05-27 22:26:29 · 163 阅读 · 0 评论 -
剑指Offer学习之面试题7:用两个栈实现队列
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。代码如下:package com.www.OfferToSword;import java.util.Stack;public class Solution7 { /** * 用两个栈模拟的队列 用原创 2017-05-27 22:28:09 · 172 阅读 · 0 评论 -
剑指Offer学习之面试题8 : 旋转数组的最小数字
题目: 把一个数组最开始的若干个元素搬到数组的末尾, 我们称之数组的旋转。输入一个递增排序的数组的一个旋转, 输出旋转数组的最小元素。例如数组{3,4, 5, 1, 2 }为{ l1,2,3, 4,5}的一个旋转,该数组的最小值为1实现代码如下:package com.www.OfferToSword;public class Solution8 { /** * 把一个数原创 2017-05-27 22:32:11 · 139 阅读 · 0 评论 -
剑指Offer学习之面试题9 : 斐波那契数列
O(n)时间O(1)空间实现:package com.www.OfferToSword;public class Solution9 { /** * 写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项 * * @param n * Fibonacci数的项数 * @return 第n项的结果 */ public stati原创 2017-05-27 22:33:45 · 253 阅读 · 0 评论 -
剑指Offer学习之面试题10 :二进制中1 的个数
package com.www.OfferToSword;public class Solution10 { /** * 请实现一个函数, 输入一个整数,输出该数二进制表示中1的个数。 例如把9表示成二进制是1001 ,有2位是1. 因此如果输入9,该出2。 * * @param n * 待的数字 * @return 数字中二进制表表的1的数目原创 2017-05-27 22:35:34 · 195 阅读 · 0 评论 -
剑指Offer学习之面试题11 :数值的整数次方
package com.www.OfferToSword;public class Solution11_1 { public static void main(String[] args) { System.out.println(power_1(2, 5)); System.out.println(power_2(2, 5)); System.out.println(pow原创 2017-05-27 22:37:32 · 184 阅读 · 0 评论 -
剑指Offer学习之面试题12 :打印1 到最大的n 位数
package com.www.OfferToSword;public class Solution12 { public static void main(String[] args) { print(2); } public static void print(int n) { double max = Math.pow(10, n) - 1; System.out.原创 2017-05-27 22:39:32 · 243 阅读 · 0 评论 -
剑指Offer学习之面试题5 : 从尾到头打印链表
题目:输入个链表的头结点,从尾到头反过来打印出每个结点的值。package com.www.OfferToSword;import java.util.Stack;public class Solution5 { public static class ListNode { int val; ListNode next; } /** * 输入个链表的头结点,从原创 2017-05-27 22:25:12 · 233 阅读 · 0 评论