找出数组中每个数的右边第一个比它大的数

问题描述:给出一组数,找出数组中每个数的右边第一个比它大的数 问题分析:利用单调栈,从左至右依次压入数据的索引(若直接压数,则还需要一个数组保存栈中元素所对应的数组位置,如果当前元素小于等于栈顶的索引所对应的数组的值,入栈当前索引,否则将栈顶索引出栈,并在栈顶索引所对应的res数组中记录下当前的...

2018-09-19 09:32:30

阅读数 760

评论数 0

2018-8-30华为机试第三题

一个很明显的递归问题 package cn.csu.ksh; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { public st...

2018-08-30 15:58:00

阅读数 322

评论数 0

2018-8-30华为机试题第1题

问题描述:字符串之数字子串求和 思路:要求时间复杂度O(N),空间O(1) 1.不管遇到什么先-'0' =>cur 2.若cur不是数字->即不在0~9之间...需要先判断posi是不是false... 因为没第一次遇到'-...

2018-08-30 15:48:36

阅读数 642

评论数 1

sysnchronized的实现原理与应用

在并发编程中,synchronized一直是被使用非常频繁的,很多人会把它称为重量级锁,但是,JavaSE1.6对它有一个重大优化,在1.6中为了减少获得锁和释放锁带来的性能消耗而引入了偏向锁和轻量级锁。 我们知道Java中的每一个对象都可以作为锁,具体表现为三种形式: 1.对于普通同步方法,...

2018-08-29 11:39:25

阅读数 261

评论数 0

Java并发中——阻塞队列

阻塞队列的使用场景 在并发的情况下,生产者消费者模式需要用到队列,生产者线程生产数据,放进队列,然后消费从队列中获取数据,这个在单线程的情况下没有问题。而在使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤...

2018-08-15 16:51:05

阅读数 95

评论数 0

Java线程池相关参数以及拒绝策略

为什么要使用线程池 在JavaSE中,要实现多线程的方式有多种,例如继承Thread、实现Runnable接口或者Callable接口。但是我们应该要知道,创建一个线程的开销是很大的,因为它总涉及与操作系统交互,我们知道,线程总共有三个过程,分别是创建、使用、销毁。但是在实际使用中,服务器在创建...

2018-08-13 15:01:26

阅读数 204

评论数 0

剑指Offer学习】【面试题18 :二叉树的镜像】

题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 ...

2018-08-08 14:41:39

阅读数 39

评论数 0

【剑指Offer学习】【面试题12 :数值的整数次方】

题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 题目分析 很多人看到这个题基本上心里马上就有一个大致的思路了,就是用一个循环来做base的exponent次方,于是代码很快就能出来 public double so...

2018-08-07 11:23:33

阅读数 40

评论数 0

【剑指Offer学习】【面试题10 :青蛙跳台的变种问题】

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题目分析 这次的场景和之前青蛙跳台的问题不一样,前一次的场景是青蛙一次可以调1个台阶,也可以跳2个台阶。现在的场景是:青蛙也可以跳上n级。所以情况又发生了变化。 现在我...

2018-08-05 19:14:50

阅读数 91

评论数 0

【剑指Offer学习】【面试题9 :青蛙跳台问题】

问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 问题分析 当n=1,有一种跳法 当n=2,一次跳一个跳两次,一次跳两个跳一次,共两种跳法 当n>=2时,n个台阶,设有F(n)种跳法 ...

2018-08-04 20:18:43

阅读数 126

评论数 0

【剑指Offer学习】【面试题6 :重建二叉树】

题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路 二叉树的前序遍历是从根节点开始的,...

2018-08-03 14:53:51

阅读数 49

评论数 0

【剑指Offer学习】【二维数组中的查找】

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束  如果该数字大...

2018-08-01 16:00:54

阅读数 66

评论数 0

初链—区块链混合共识的领航者

1.蓬勃发展的区块链 互联网的高度普及使人类从工业社会迈入信息社会,而区块链技术的出现,又是对互联网技术更上一层的技术革新。区块链思想最早出现在大名鼎鼎的比特币开源项目中。比特币项目在诞生和发展过程中,借鉴了来自数字货币、密码学、博弈论、分布式系统、控制论等多个领域的技术成果,作为其核心支撑的区...

2018-07-29 15:36:58

阅读数 339

评论数 0

初链:高性能去中心化公开账本

1.绪论 2017-2018年,互联网界最火热的话题之一就是区块链。其去中心化、分布式以及防篡改一系列特性使得人们对于这个可能对互联网发展产生重大影响的技术关注颇多。从比特币的区块链最初版本,到以太坊为主流的进阶版本,再到超级账本项目的版本,区块链技术一直在飞速的发展,并且不断落地到各个领域。本...

2018-07-27 22:41:47

阅读数 430

评论数 0

DEL:区块链4.0时代--让技术更接近价值

1.蓬勃发展的区块链 技术的终极魅力,是高度普及之时,价值的极致绽放  互联网的高度普及使人类从工业社会迈入信息社会,而区块链技术的出现,又是对互联网技术更上一层的技术革新。区块链思想最早出现在大名鼎鼎的比特币开源项目中。比特币项目在诞生和发展过程中,借鉴了来自数字货币、密码学、博弈论、分布式...

2018-07-23 09:53:20

阅读数 859

评论数 0

PBFT算法

引言———分布式系统一致性问题 区块链系统,首先是一个分布式系统。传统单节点结构演变到分布式系统,碰到的首要问题就是一致性的保障。很显然,如果分布式集群无法保证处理结果一直的话,那任何建立于其上的业务系统都无法正常工作。 一致性问题是分布式领域最为基础也是最重要的问题。如果分布式系统能实现“一致...

2018-07-23 09:51:44

阅读数 1440

评论数 0

谈谈spring中的IOC

学习过Spring框架的人一定都会学习Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天谈谈我对Spring Ioc的理解。 1.什么是IOC Ioc—Inversion of Contr...

2018-07-19 10:41:56

阅读数 76

评论数 0

Java抽象类与接口

引言在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。首先来说一下抽象类和接口的相关概念,然后再对两者进行比较。抽象类在描述抽象类之前,我们先来说说抽象方法,Java中的抽象方法是指使用abstract关键字修饰的方法,并且抽象方法只有方法...

2018-07-15 17:41:56

阅读数 119

评论数 0

进程和线程的主要区别(总结)

根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。所处...

2018-06-13 10:11:52

阅读数 52735

评论数 4

二叉搜索树的后序遍历序列

题目如果输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果,如果是则返回true,如果不是则返回false。假设输入的数组的任意两个数字都互不相同。分析:在后序遍历得到的序列中,最后一个数字是树的根节点的值,数组中前面的数字可以分为两个部分:第一部分为左子树的节点的值,他们都比根节点的...

2018-05-30 11:20:42

阅读数 59

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭