![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
JYZzz.
这个作者很懒,什么都没留下…
展开
-
整数二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。使用语言JAVA,整数类型 4字节 32位右移法:负数比较32次 整数最大位所在位置次,最多31 //实现思路: //右移法:将运算数每位都与1进行位与,如果结果为1,则表示该位为1 //使用右移法 public int NumberOf1(int n) { int numberOfOne=0;//记录1...转载 2019-02-21 13:32:09 · 257 阅读 · 0 评论 -
剑指offer:重建二叉树
import java.util.Arrays;/*输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。*//************ * 关于先序遍历和中序遍历 * 先 、中 都是对于根节点来说的 ...转载 2019-02-19 19:22:25 · 422 阅读 · 0 评论 -
剑指offer:查找转置数组中的最小值
public class Solution {/* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。*/ public static void main(Strin...原创 2019-02-19 20:58:14 · 100 阅读 · 0 评论 -
剑指offer:转置链表
import java.util.ArrayList;public class Solution { public static void main(String[] args) { //ReverseList Test Solution sol=new Solution(); ListNode node1=new ListNode(1); ListNode node2...原创 2019-02-19 21:03:56 · 148 阅读 · 0 评论 -
剑指offer:数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。常规思路我们定义一个链表,然后循环遍历数组,发现链表中有当前遍历的值,就移除;没有就添加,在保证有两个不同数字的情况下,最后链表中肯定会剩下两个数字,就是结果了。实现很简单。 public void FindNumsAppearOnce(int [] array,int num1[] , in...原创 2019-03-01 11:10:35 · 128 阅读 · 0 评论 -
剑指offer:复杂链表的复制
输入一个复杂链表,返回结果为复制后复杂链表的headPS:每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)import java.util.HashMap;/*输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制...原创 2019-02-25 17:26:40 · 92 阅读 · 0 评论 -
数据结构:图的常用操作(邻接矩阵表示)
啥都不说了 都在代码里原创 2019-03-02 17:46:32 · 994 阅读 · 0 评论 -
二叉树的遍历(先序、中序、后序、层次)
假设二叉树的节点定义如下:class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}递归方式遍历二叉树先序遍历 /*****************...原创 2019-02-26 21:16:15 · 560 阅读 · 0 评论 -
数据结构:图的常用操作(邻接表表示)
邻接矩阵常用操作https://blog.csdn.net/weixin_43823363/article/details/88075805首先来看一下用邻接表表示的图结构(图片资源来自大话数据结构)邻接表表示由表头和叶子节点两部分组成,实现其数据结构如下://邻接表 用于处理拓扑排序class AdjTable{ AdjTableHead[] table;//邻接表表头 i...原创 2019-03-03 15:42:28 · 1297 阅读 · 0 评论 -
leetcode:统计在同一条直线上的点的数量
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line./** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; ...原创 2019-03-10 15:40:25 · 634 阅读 · 0 评论 -
leetcode:单链表的排序
//链表结构 class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }//插入排序 //链表的插入排序 public ListNode insertionSortList(ListNode head) { //非空判...原创 2019-03-10 20:01:31 · 761 阅读 · 0 评论 -
堆棋子
小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.input:输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数第二行为n个棋子的横坐标x[...转载 2019-03-07 20:02:53 · 213 阅读 · 0 评论 -
剑指offer:使用两个栈实现队列
import java.util.Stack;public class Solution { /* * 用两个栈实现一个队列的基本思想为:将其中一个栈在入队列时负责处理入队元素,另一个出队时负责处理出队元素 * 当元素入队时,将其放入入队中, * 当元素出队时,判断出队栈是否为空,为空则将所有入栈元素弹出到出栈中,然后弹出一个出栈元素 * 若出栈不为空,直接弹出一个元素 *...原创 2019-02-19 19:20:05 · 118 阅读 · 0 评论 -
全排列算法学习
写个标题 force me complete it tomorrow.原创 2019-03-01 23:09:22 · 425 阅读 · 0 评论 -
剑指offer:数组中的逆序对
           在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。    &转载 2019-02-28 20:19:17 · 273 阅读 · 0 评论 -
剑指offer:奇数在前,偶数在后
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution { public static void main(String[] args) { int[] testArray= {1,4,3,5,7,6,9}; // new Solu...原创 2019-02-21 20:54:37 · 145 阅读 · 0 评论 -
剑指offer:合并连个有序链表
还是直接上代码public class Solution { /*********************** * 合并两个链表 毫无疑问 要对两个链表进行遍历 * @param list1 链表1 * @param list2 链表2 * @return 返回合并后链表的头结点 */ public ListNode Merge(ListNode list1,Lis...原创 2019-02-22 11:11:53 · 122 阅读 · 0 评论 -
剑指offer:子树判断
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构public class Solution { /***************************** * 判断树B是否是树A的子结构 * @param root1 树A * @param root2 树B * @return 树A是否是树B的子结构 */ public b...原创 2019-02-22 13:37:47 · 266 阅读 · 0 评论 -
剑指offer:二叉树镜像
public void Mirror(TreeNode root) { //节点为null时 返回 也是递归结束的出口 if(root==null) { return; } //镜像过程自底向上进行 Mirror(root.left);//将左子树进行镜像 Mirror(root.right); ...原创 2019-02-22 21:09:03 · 94 阅读 · 0 评论 -
剑指offer:顺时针打印矩阵
//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字//例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16//则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.import java.util.ArrayList;public class Solution { publi...原创 2019-02-23 11:21:42 · 96 阅读 · 0 评论 -
剑指offer:栈的压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) import java.util.Stack; public class Solu...原创 2019-02-23 14:35:07 · 139 阅读 · 0 评论 -
查找字符串中的最长回文串(JAVA实现)
思路写在代码里判断一个字符串是否是回文串 /*********************** * 判断一个字符串是否是回文串(左右对称) 单个数字默认为是 * @param str 需要进行判断的字符串 * @return 返回该整数是否为回文串 */ public static boolean isPlalindrome(String str) { /...原创 2019-02-23 21:57:04 · 6413 阅读 · 3 评论 -
KMP算法学习
判断一个字符串是否是另一个字符串的子字符串暴力法KMP算法原创 2019-02-27 17:56:28 · 293 阅读 · 2 评论 -
求解二叉树的高度(递归、非递归)
递归方式非递归方式转载 2019-02-28 13:33:59 · 5345 阅读 · 0 评论 -
剑指offer:二叉搜索树合法后序遍历序列检测
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public static void main(String[] args) { int[] sequence= {12,14,13,10}; System.out.print(new Soluti...原创 2019-02-24 14:26:29 · 130 阅读 · 0 评论 -
2018微软秋招JAVA面试题(前两题)
1.艾玛想在父亲生日那天送一束花给他,并向母亲求助。母亲给了艾玛N根编号为1到N的花束,让她按照特定的顺序排列好。母亲让艾玛把第K根花枝按其长度增加的顺序排列,其余的花枝按其长度减少的顺序排列。编写一个算法来找到Emma将花束送给父亲的花茎的最终排列。输入:方法的输入由三个参数组成,num是一个整数,表示花棍的数量(N)。random,一个整数代表母亲给艾玛花束的数字K,一个整数列表代表花朵枝...转载 2019-02-19 13:07:03 · 1275 阅读 · 0 评论 -
堆排序的实现
/********************* * 堆排序 * 堆排序本质是将数组视为完全二叉树进行操作 * 如果是进行升序排序,那么需要将堆初始化为大根堆(所有的节点的值均大于左右孩子节点的值) * 反之,初始化为小根堆 * 堆排序主要分为两个过程:将数组初始化为大根堆和排序的过程,时间复杂度主要在大根堆的调整上 * 如果数组开始下标为0,那么左右孩子的下标分别为2*i...原创 2019-03-11 20:15:39 · 166 阅读 · 0 评论