![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题总结
文章平均质量分 58
sytloveyxj
还是太年轻
展开
-
两数组的交
lintcode上做到一道题目,是两数组的交,要求我用了三种方法来做,结果提交全部超时,但是结果是可以跑出来的,如下:package lintcode;//import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;impo原创 2017-08-13 17:38:30 · 146 阅读 · 0 评论 -
<剑指offer 面试题5>替换空格(Java)
import java.util.Scanner;public class Interview5 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String str=sc.nextLine();原创 2017-12-22 22:24:15 · 191 阅读 · 0 评论 -
<剑指offer 面试题6-1>单项链表的实现 Java实现
/** * Java实现链表 * @author ys * */public class LinkNode { Node head=null; //链表的结点 class Node{ int data; Node next = null; public Node(int data) { this.data=data; } } //向链表中插入数据原创 2017-12-25 23:04:38 · 191 阅读 · 0 评论 -
排序总结
主要介绍一下八大排序。先介绍最后上代码一、插入排序1、直接插入排序简单的说,就是将一个记录插入到已经排序好了的表中,从而得到一个新的有序地表,即将第一个记录看成是一个有序地子序列,从第二个记录开始逐个进行插入,直至将整个序列排序完成。过程如下:2、希尔排序希尔排序又叫做缩小增量排序。就是将整个待排序的序列分割成若干子序列,分别进行直接插入排序,待整个序列中的原创 2018-01-11 18:20:30 · 378 阅读 · 0 评论 -
<剑指offer 面试题6-2>从尾到头打印链表 Java
import java.util.Stack;//要定义一个节节点类class Node{ int data; Node next = null; public Node(int data) { this.data=data; }}public class Interview6 { /** * 题目:从尾到头打印链表原创 2017-12-27 20:11:00 · 172 阅读 · 0 评论 -
<剑指offer 面试题7-1>构建二叉树以及实现遍历 Java
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;public class BinaryTree { private int[] array={1,2,3,4,5,6,7,8,9}; p原创 2017-12-28 21:13:06 · 250 阅读 · 0 评论 -
<剑指offer 面试题7-2>重建二叉树 Java
package 剑指offer;import java.util.Arrays;import org.omg.CORBA.REBIND;public class Interview7 { /** * 题目:重建二叉树 * 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树, * 假设输入的前序遍历和中序遍历的结果中都不和重复的数字。 * 例如,输入的前序遍历序列{原创 2017-12-28 22:07:38 · 384 阅读 · 0 评论 -
<剑指offer 面试题8>二叉树的下一个节点(Java)
public class Inteview7_1 { /** * 题目:给定一科二叉树和其中一个节点, * 如何找出中序遍历序列的下一个节点? * 书中的节点除了有两个分别指向左右节点的指针, * 还有一个指向父节点的指针 * @param args */ public class BinaryTreeNode{ int val; BinaryTreeNode原创 2017-12-29 20:56:25 · 1084 阅读 · 0 评论 -
<剑指offer 面试题9>用两个栈实现队列(Java)
package 剑指offer;import java.util.Stack;public class Inteview9 { /** * 题目:用两个栈实现队列 * 队列声明如下:请实现他的两个函数安排appendTail()和deleteHead() * 分别完成在队列的尾部插入节点和在队列的头部删除节点的功能 * @param args */ private原创 2017-12-29 22:20:18 · 195 阅读 · 0 评论 -
<剑指offer 面试题4> 二维数组中的查找(Java实现)
import java.util.Scanner;public class Interview4 { public static void main(String[] args) { // TODO Auto-generated method stub int a[][]=new int[4][4]; Scanner sc=new Scanner(System.in);原创 2017-12-22 21:52:50 · 209 阅读 · 0 评论 -
<剑指offer 面试题3> 数组中重复的数字(Java实现)
public class Interview3 { /** * 题目一:找出数组中重复的数字 * 在一个长度为N的数组里的所有数字都在0~n-1的范围内。 * 数组中某些数字是重复的,但不知道有几个数字重复了, * 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 *思路:1、对数组进行排序,然后遍历,相同的输出 * 2、插入到哈希表中 * 3原创 2017-12-21 23:11:08 · 265 阅读 · 0 评论 -
涉及两个或者多个数组的比较的题目
涉及到这种题目,第一反应是循环然后比较,这样一般都会超时,所以,我们可以一方面借助集合类来实现,不管用哪种方法,最好首先先对数组进行排序,;然后在进行比较会节省很多时间原创 2017-08-13 17:38:18 · 647 阅读 · 0 评论 -
java实现基础数据类型中二进制位操作算法
虽然一直很头疼二进制的问题,主要是搞不清各种类型和补码啊之类的,可是发现用二进制位的操作算法解决一些算法题还是很方便的。。。。。首先,(1)最经典的,交换两个整形变量,一般做法是借助第三个变量,但是用异或操作就是可以的,比如 a=0,b=5;java中异或用" ^ "表示;A异或B = (~A∩B)∪(~B∩A) a=a^b; (a=1010^0011=1001)原创 2017-08-24 16:18:52 · 407 阅读 · 0 评论 -
(用二进制的思路)给定一个集合S,打印出集合所有的子集
package lintcode;public class HandleAllSubSet { public void handleAllSubSet(String[] set){ int len = set.length; int val =0; //根据字符串的长度,产生跟长度相同的二进制数 比如 长度是3,则val=111=7 for(int i = 0 ;i<le原创 2017-08-31 16:00:05 · 878 阅读 · 0 评论 -
素数判断及矩形交集的实现
1、给定一个正整数n,返回1到n之间所有的素数一般做法: 暴力枚举法:从1到n遍历,如果k是素数,则将k加入到素数的集合中。判断K是否是素数的方法,查看每一个比k小的数是否可以被k整除。时间复杂度更低的方法,拿到一个素数,然后把该素数的倍数对应的数都删除,反复进行,直到没有可以删除的数为止。原创 2017-09-18 16:58:23 · 389 阅读 · 0 评论 -
java实现 Elias Gamma 编码算法
Elias Gamma编码步骤:1、将n转换成他的二进制形式并转换成字符串的形式2,、如果n的而今只需要m个bit来表示,将m-1,然后再转换的字符串前面添加m-1个0算法设计如下:package test;import java.util.ArrayList;import java.util.Scanner;public class Elias { public Stri原创 2017-09-19 16:28:06 · 723 阅读 · 0 评论 -
能整除数组个数的数组下表
假设A是一个整数数组,长度为n,数组中的元素可能是重复的。设计一个算法,找到一系列下标的集合I = {i(0), i(1),i(2)….i(n)}. 使得(A[i(0)] + A[i(1)] + … A[i(n)] ) mod n =0.例如假定A = {711, 704, 427, 995, 334, 62, 763, 98, 733,721}, 于是I = {0,1,3}, 因为(A[0] +原创 2017-09-29 16:12:19 · 527 阅读 · 0 评论 -
计算等价类
首先,什么是等价关系:等价关系是集合元素间的一种代数关系,用字母E来表示,对于一个集合中的两个元素,如果他们之间存在一种等价关系,那么必须满足以下性质:1. 自反性,对于任意一个元素x, 它与自己存在等价关系,即(x,x) 满足E2. 对称性,如果(x,y) 满足 E, 那么 (y, x) 也属于E3. 传递性,如果(x,y) 满足 E,(y,z)满足E,那么(x,z)也原创 2017-10-09 09:31:48 · 6694 阅读 · 0 评论 -
<剑指offer 面试题2> 单例模式 (Java实现)
public class Interview2 { /* 一共三种方法,如下:*/ // 方法1 /*private static final Interview2 singleton = new Interview2(); private Interview2(){} public static Interview2 getInstance(){return sin原创 2017-12-21 22:36:13 · 181 阅读 · 0 评论 -
<剑指offer 面试题10_1>斐波那契数列 Java
import java.util.Stack;public class Inteview10_1 { /** * 题目:求斐波那契数列的第n项 * f(0)=0; * f(1)=1; * f(n)=f(n-1)+f(n-2); * f(n)=0+1+1+2+3+5+8+13+....... * @param args */ //传统的递归算法,效率很低 pu原创 2017-12-30 15:42:43 · 182 阅读 · 0 评论