自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于...

2018-08-18 10:28:00 116

转载 第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).第一种方法:利用ASCII码用字符作为数组的下标索引存储,字符出现的次数即是对应索引的值,俩次循环,时间复杂度为O(n),最后做个判断即可。 1 public class Solutio...

2018-08-18 09:55:00 110

转载 连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它...

2018-08-17 09:09:00 85

转载 JS如何操作class选择器的样式

在学习前端的知识的时候,发现使用JS无法操作class选择器的样式,刚开始还以为是js没有设置,只有在jquery可以操作呢?看了一些相关文章才清楚:document.getElementsByClassName拿到的是数组并非某一个对象var box = document.getElementsByClassName("box"); box.value; //返回u...

2018-08-16 23:14:00 643

转载 CSS各类字体

.selector{font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu}css如何设置各种中文字体如雅黑、黑体、宋体、楷体等等说明:加上中文名“微软雅黑”是为了兼容opera。MicrosoftJhengHei为微软正黑体,STHeiti为华文黑体,MingLiu记得...

2018-08-14 21:31:00 63

转载 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路一:设置一个新数组,该数组的下标是题目数组的中的元素 ,如下1 int[] arrayCopy = new int[a...

2018-08-14 14:56:00 43

转载 二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。核心:利用中序遍历的结果有序的性质,遍历出有序的序列,然后对每个序列将left设置为前一个结点,将right设置为后一个结点 (重点掌握二叉树的遍历递归过程和步骤逻辑) 1 /** 2 public cla...

2018-08-14 11:41:00 53

转载 禁止使用循环判断求1+2+3+..n

题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路:看到这一题的时候,不能使用乘除法和循环判断,当时就想到了使用二进制移位的方法,因为二进制不就只有加法操作,而且所有的计算在计算机里都是二进制操作。首先:1+2+3+..+n = n(1+n)/2...

2018-08-11 23:31:00 205

转载 html页面的CSS、DIV命名规则

CSS命名规则  头:header  内容:content/containe  尾:footer  导航:nav  侧栏:sidebar  栏目:column  页面外围控制整体布局宽度:wrapper  左右中:left right center  登录条:loginbar  标志:logo  广告:banner  页面主体:main...

2018-08-09 23:14:00 113

转载 java语法糖

语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身功能来说没有什么影响,只是为了方便程序员的开发,提高开发效率。说白了,语法糖就是对现有语法的一个封装。Java作为一种与平台无关的高级语言,当然也含有语法糖,这些语法糖并不被虚拟机所支持,在编译成字节码阶段就自动转换成简单常用语法。一般来说Java中的语法糖主要有以下几种:...

2018-08-09 16:09:00 62

转载 二叉树中和为某一值的路径

题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 1 public class TreeNode { 2 3 int val=0; 4 TreeNode left; 5...

2018-08-09 14:34:00 62

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

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空...

2018-08-09 10:50:00 99

转载 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:路线层序遍历,方法广度优先搜索,工具队列注意点:不同于C/C++,声明队列queue<TreeNode*> p; //队列里存放的是地址java的queue是接口,需要通过其实现类来完成操作注意:Queue 接口并未定义阻塞队列的方法,而这在...

2018-08-09 09:44:00 66

转载 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。思路: 思路很明了,设置一个新结点,左右孩子交换,递归下去。不需要想太多,即使左子树为空或右子树为空,只不过是将左子树的null 和右子树进行了交换而已,若当前结点为空,则return 结束该次递归。/**public class TreeNode { int val = 0;...

2018-08-08 09:21:00 59

转载 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路分析:判定情况: 1:比较根的值,若相等一直比较下去 2:若根值不等,则比较A的左孩子和B的根 3:若根值和左孩子不等,则比较A的右孩子和B的根比较方法:1:若此时B为空,则说明B至少有一个匹配成功,返回TRUE2:若A...

2018-08-08 09:11:00 55

转载 合并俩个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:创建一个新的链表结点,将俩个单调递增的链表进行比较,将数值小的那一个链接到新结点之后,而新节点的指针指向的结点即通过不断递归获得新的数值小的结点。除此之外要注意相等,某链表是否为空等情况。 1 package 合并递增链表; 2 3 c...

2018-08-07 23:14:00 63

转载 反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。 1 public class Solution { 2 3 public ListNode ReverseList(ListNode head) { 4 ListNode pre = null; 5 ListNode next = null; 6 ...

2018-08-07 22:26:00 69

转载 链表中倒数第K个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。 1 /* 2 public class ListNode { 3 int val; 4 ListNode next = null; 5 6 ListNode(int val) { 7 this.val = val; 8 } 9 }...

2018-08-06 20:23:00 91

转载 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。一:通过迭代乘积的方式 1 public class Solution { 2 3 public double Power(double base, int exponent) { 4 5 double ...

2018-08-06 19:35:00 45

转载 调整数组顺序是奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。方法一:前偶后奇数就交换 1 public class Solution { 2 public void reOrderArray(int[] array)...

2018-08-06 14:13:00 49

转载 二进制数中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:在平时的学习中感受不到位运算的精妙,但是在一些算法处理和效率问题上位运算却提供了很好的解决方法,毕竟它是立足于二进制来处理数据的,最底层的也是效率最高的。 本题的考察重点也是位运算。通过运算 & 与运算,每次循环 ——n=n & (n-1) 会使得每次都会排除一个1(在草...

2018-08-06 08:11:00 194

转载 JAVA位运算

一.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。  (1)正数的最高位为0,其余各位代表数值本身(二进制数)。  (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。二:位运算符三:Java 中二进制的表示由于数据在计算机中的表示,最终以二进制的形...

2018-08-06 07:59:00 130

转载 矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?(本题思路搬运他人,自己在做这题时思路是想通过分而治之的思想解决的,因为当整个整体被分成n个分区的时候,即单位面积2*1,那么整个大的整体可以容纳多少个这样的单位面积,就可以根据这个数值利用组合数求解,即n个小整体在整体的放置问题)...

2018-08-05 10:52:00 64

转载 跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。个人思路分析:青蛙只能选择跳一个台阶和跳俩个台阶,正着看比较复杂,我之前正着看用了俩层循环穷举排列解题,很多小错误。接着通过画图找到了方法,我们可以从最后一步看起,到达最后一步可以在n-1和n-2的位置,例如n=4的话,就有3和...

2018-08-05 09:50:00 70

转载 OSI七层模型

OSI Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型。它是网络技术的基础,...

2018-08-05 00:10:00 186

转载 多线程上下文切换

什么是上下文切换上下文切换(context-switching)是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行。上下文切换时多任务操作系统和多线程环境的基本特征。即使是单核CPU也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程时...

2018-08-04 23:33:00 145

转载 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。第一种方法for循环,从后往前查找,时间复杂度为O(n) 1 impo...

2018-08-04 23:19:00 34

转载 用俩个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:栈是先进后出的结构,而队列是先进先出的结构,题目中给出俩个栈,一个栈只能完成特定的操作,如何才能利用俩个栈让元素能够先进去先出来?一个栈元素是后出,那么叠加式把一个栈放入另一个栈中,该元素的出入顺序就变成了先入先出。注意:这里有一个细节很重要 if(st...

2018-08-04 21:13:00 104

转载 从尾到头打印链表

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。java实现 1 //题目给定的链表条件 2 3 public class ListNode { 4 int val; 5 ListNode next = null; 6 7 public ListNode(int val) {...

2018-08-04 10:44:00 47

转载 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 1 //二叉树结构体 2 public class TreeNode { 3 4 int val...

2018-08-04 10:44:00 77

转载 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。C++实现1:(新字符串长度为下标)从后往前输出新的字符,如果是空格输出 0 2 %,否则直接输出原字符2:新字符串长度=输入长度+空格数量*2 (C语言字符串规定,字符串长度是指从...

2018-08-04 10:44:00 86

转载 二维数组的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。由于每一行是有序递增的数组, 利用循环遍历和二分查找, 通过遍历每一行得到答案, 时间复杂度是nlogn还有一种方法:思路:矩阵是有序的,从左下角来看,向上数字递减,向右数字递...

2018-08-03 09:03:00 85

转载 深入了解java线程池

   在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  在J...

2018-08-03 08:56:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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