自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (1)
  • 收藏
  • 关注

原创 Next Greater Element I

//map的getOrDefault方法是返回有map键值的,没有的话,返回-1public int[] nextGreaterElement(int[] nums1, int[] nums2) {        Stack <Integer>stack =new Stack<Integer>();         Map<Integer, Integer> m...

2018-04-25 09:18:47 140

原创 Word Break

//一道动态规划的问题,从0找到i,再从j找到ipublic static  boolean wordBreak(String s, List<String> wordDict) {        int n = s.length();           boolean [] a = new boolean[n];           for(int i = 0;i < n;i...

2018-04-24 09:38:31 120

原创 找出数组中第一个重复的数字

//存储在一个数组中,以给定数组为下标,累加超过1,则判定为重复数字public static int dup(int []nums) { int [] dp= new int[nums.length]; for(int i=0;i<nums.length;i++) { if(dp[nums[i]]==0) dp[nums[i]]++; else if(dp[nums...

2018-04-23 22:27:01 3907 1

原创 Longest Substring Without Repeating Characters

//查找不重复的最大子串,可以判断map集合是否存在相同的字符,直接加索引i指向j+1,如果比原有的ans大,就使用新的长度//这里使用数组替代map   public int lengthOfLongestSubstring(String s) {              int n=s.length(),ans=0;              int [] sum=new int[128];...

2018-04-23 09:02:26 100

原创 Largest Rectangle in Histogram

//这道题属于栈的题目,需要判断入栈元素和栈内元素大小,构造一个非递减栈//最巧妙的地方在于,扩大原数组容量,使得最后一个数据为0,以此来排除栈内剩余元素//注意数组为空,数组为1的情况class Solution {    public int largestRectangleArea(int[] heights) {        Stack<Integer> stack =new...

2018-04-22 10:12:43 220

原创 Minimum Path Sum

//动态规划问题总是由小到大,先从小出发,先找第一行,第一列的步数,然后再累加 public int minPathSum(int[][] grid) {         int m = grid.length;       int n = grid[0].length;    int[][] dp = new int[m][n];    dp[0][0] = grid[0][0];    for...

2018-04-20 10:15:00 106

转载 Longest Palindromic Substring

//设置dp为i到j是否为回文串,1代表是,0为不是,i到j相等,则考虑i-1到j-1是否是回文串,一层一层递进  public String longestPalindrome(String s) {         int maxLen = 0; String longestStr = s.substring(0,1);   int length = s.length();   int[...

2018-04-19 09:57:24 97

原创 Maximum Subarray

//找到字符串中最大的子串和,需要从第一个开始统计lass Solution {    public int maxSubArray(int[] nums) {        int sum=0;        int max=0;        int len=nums.length;        if(len==0)            return 0;                f...

2018-04-19 09:20:46 135

转载 Find the Duplicate Number

//先排序,在找ipublic int findDuplicate(int[] nums) {        Arrays.sort(nums);        for(int i=1;i<nums.length;i++) {        if(nums[i]==nums[i-1])             return nums[i];        }        return -...

2018-04-18 09:18:33 99

转载 Next Greater Element II

//这道题没有编出来,但是思想很好,首先倒序将前面的大数找出来,存入栈中,再进行第二次比较,得出最终结果class Solution {    public int[] nextGreaterElements(int[] nums) {        int[] res = new int[nums.length];        Stack<Integer> stack = new ...

2018-04-16 08:43:16 140

转载 Daily Temperatures

//栈中存储数组下标,从后往前遍历比较,可以省去从前往后的数组过大的麻烦  public static int[] dailyTemperatures(int[] temperatures) {    int[] ans = new int[temperatures.length];        Stack<Integer> stack = new Stack();     ...

2018-04-13 12:20:06 179

转载 计算机网络—面试题2

1、TCP和UDP区别    1)TCP是面向连接的协议,UDP是无连接的协议。    2)TCP提供可靠地交付,UDP不可靠    3)TCP协议会为你排好序,UDP不提供任何有序性保证。    4)TCP速度慢,UDP速度快    5)TCP是重量级协议,UDP是轻量级协议    6)TCP有流量控制和拥塞控制。    7)TCP面向字节流,UDP面向报文    8)TCP只能单播,不能发送广...

2018-04-12 21:02:49 350

转载 计算机网络—面试题1

1、三次握手和四次挥手?三次握手:    LISTEN: 表示服务器端的某个 SOCKET 处于监听状态, 可以接受连接了。  SYN_SENT: 当客户端 SOCKET 执行 CONNECT 连接时, 它首先发送 SYN 报文, 因此也随即它会进入到了 SYN_SENT 状态, 并等待服务端发送三次握手中的第 2 个报文。SYN_SENT 状态表示客户端已发送 SYN 报文。  SYN_RCVD...

2018-04-12 16:59:43 157

原创 Binary Tree Inorder Traversal

class Solution {    public List<Integer> inorderTraversal(TreeNode root) {        List <Integer> list=new ArrayList< >();        helper(root,list);        return list;    }//从头结点开始遍历...

2018-04-12 10:08:57 111

原创 Asteroid Collision

//定义栈对象,让数组里的数据进栈,如果是正数,就不判断,如果是负数进行判断  public static int[] asteroidCollision(int[] asteroids) {      Stack <Integer> stack =new Stack<Integer>();      Stack <Integer> stacks=new S...

2018-04-12 09:56:20 137

转载 多线程与并发—面试题2

1、CountDownLatch和CyclicBarrier的区别?       1)CountDownLatch作用允许一个线程等待其他线程执行完成后,才执行。而另外一个允许N个线程相互等待到某个公共屏障点,然后这组线程再同时执行。       2)CountDownLatch计数器的值无法被重置,这个初始值只能被设置一次,不能重用,而第二个的计数器可以重用。2、Semaphore可以控制某个资...

2018-04-11 21:34:09 292

转载 多线程与并发—面试题1

1、缓存一致性?解决的办法?       当程序在运行过程中,会把数据从主存复制一份到CPU的高速缓存,然后直接从高缓提取数据,然后再刷新回主存中。       解决的办法:1)通过在总线增加LOCK#锁的方式(通过加锁方式,效率会降低)                          2)通过缓存一致性协议2、volatile关键字     一旦一个共享变量被volatile修饰,就具备两层含...

2018-04-11 17:01:48 319

原创 Baseball Game

//只需将字符串数组中的值压入栈中,然后提取出来做累加,即可得到最后结果。 public static int shuchu(String[] ops) { int sum=0; Stack <String> stack= new Stack < String> (); for(int i=0;i<ops.length;i++) { if(ops[i].equ...

2018-04-11 09:58:47 128

转载 操作系统—面试题

1、进程间通讯方式?进程间调度方法?    a、共享内存(最有用的)     多个进程可以访问同一内存空间,但是需要依靠同步操作,互斥锁和信号量等    b、消息队列      是在消息的传输过程中保存消息的容器,有读权限和写权限。    c、信号      信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。    d、信号量        是一个计数器,可以控制多个进程对共享资源的...

2018-04-10 21:10:59 606

原创 堆变量,栈变量,局部变量,全局变量

全局、静态、new产生的变量都在堆中,动态分配的变量在堆中分配,局部变量在栈里面分配。函数中声明的变量在栈中,用了new标识符在堆中,全局变量和static变量在全局区。程序为栈变量分配动态内存,在程序结束为栈变量清除内存,但是堆变量不会被清除。作用域全局变量和静态全局变量具有全局作用域。局部变量和静态局部变量具有局部作用域。分配区全局变量,静态局部变量,静态全局变量在方法区,局部变量在栈中...

2018-04-10 20:05:55 4110

转载 132pattern

//方法有很多,最简单的办法是三层循环,但是时间复杂度过高,//使用栈的方法,先将数组预处理,选出前m个中最小的值,倒序选出k的值,如果比最小的值还小,不满足规则,出栈。如果比它大,只需要比较j和k的值,只要满足规则,即返回truepackage dian;import java.util.Scanner;import java.util.Stack;public class SumStack {...

2018-04-10 10:52:17 159

原创 京东2018-括号

package dian;import java.util.PriorityQueue;import java.util.Scanner;import java.util.Stack;public class Dian {    public static void main(String[] args){       Scanner in = new Scanner(System.in);   ...

2018-04-10 09:36:12 140

原创 京东2018-回文串

一串字符串,删去其中几个字符,即可构成回文串,请问方案有几种?这是一道动态规划,举例:XXD,X,X,D每一个字符都是回文串,基数为3,XX也是回文串,    XD不是回文串,XXD也不是回文串,所以有4种。知道子串有几种回文串,添加一个字符,再找回文串。package dian;import java.util.PriorityQueue;import java.util.Scanner;imp...

2018-04-09 22:24:24 227

转载 java—面试题3

41、创建虚引用时,构造方法传入一个referenceQuenue作用是什么?虚引用必须和引用队列关联使用,当垃圾回收期准备回收一个对象,如果发现它有虚引用,就会把这个虚引用加入到引用队列中。程序可以判断引用队列是否已加入虚引用,来了解呗引用1对象是否要回收。如果程序发现某个虚引用已经加入队列,那么就可以在回收前采取措施。42、栈溢出原因和解决方法     原因:1)大量递归调用,造成栈容量超过导...

2018-04-06 15:26:13 130

转载 java—面试题2

21、HashMap和TreeMap区别:     1)HashMap基于哈希表实现。TreeMap基于红黑树实现。     2)TreeMap可以把它的数据根据键排序     3)HashMap适用于在Map中插入、删除和查找元素。TreeMap按照自然顺序遍历键,HashMap比TreeMap快一点22、集合中fail-fast机制     例如: 假设存在两个线程( 线程 1、 线程 2) ...

2018-04-05 10:24:15 184

转载 java—面试题1

1、java引用类型 类,接口,数组2、抽象类和接口的区别 1)抽象类中提供成员方法的实现细节,接口中只能是public abstract修饰,即只能是抽象方法。 2)抽象类中成员变量可实现多种权限public private protected final 等,接口中只能用public static final修饰。 3)抽象类中可以有静态方法和静态代码块,接...

2018-04-04 12:17:31 153

原创 数据库—索引

1、索引分类:唯一索引/非唯一索引、主键索引、聚集索引/非聚集索引、组合索引2、唯一索引:表中一个或多个字段组合起来的索引,在表中不可重复。     非唯一索引:表中一个或多个字段组合起来的索引,在表中可以重复。     主键索引:表中创建主键时创建的索引,表中只能有一个主索引。     聚集索引:表中记录的物理顺序和键值的索引顺序相同,一个表只能有一个聚集索引(查询快,修改慢)(适用于某列包含了...

2018-04-03 16:13:30 265

转载 java—内存泄露和内存溢出

1、内存泄露:一个不再被程序使用的对象还在占用内存。(使用Jconsole查找内存泄露)   两种情况:a、堆申请的空间没有释放。                   b、不再被程序使用的对象还没有清除。   泄露原因:a、静态集合类。                   b、各种连接,如数据库连接、网络连接等。                   c、监听器。                  ...

2018-04-03 10:38:13 107

转载 Java—回收机制

1、java可以手动执行System.gc(),java有自动的垃圾回收机制。2、java的四种引用:强引用,软引用,弱引用,虚引用。   强引用:垃圾回收器绝对不会回收。   软引用:只有在内存不足的情况下,才会回收。   弱引用:垃圾回收器都会回收。   虚引用:不管任何时候都会回收。单条引用链的可达性用最弱的引用决定。多条引用链的可达性用最强的引用决定。3、堆里面的分区 年轻代:分为Eden...

2018-04-03 10:24:43 183

原创 数据库—安全性

1、防止sql注入防止前台输入sql语句,可以进行参数绑定,数据类型和格式检测,所有sql语句封装存储。2、防止返回sql查询出的错误数据。3、特殊:涉及连接问题(内连接和外连接)内连接:只显示符合条件的数据外连接:左外连接、右外连接、全外连接左外连接:以左表为标准,在右表找数据全外连接:除了显示符合连接条件的记录,在两个表的其它记录也显示出来。using可以使用on来代替...

2018-04-01 10:41:45 349

原创 数据库—优化查询

1、尽量避免全局扫描,尽量使用where,order by以及group byorder by对查询结果集进行排序,默认按照升序排序。group by按照一定规则进行分组。2、不在索引列做运算。3、优化数据库对象使用procedure analysis()函数进行对表的分析。语法:select * from 表名 procedure analysis();4、对表进行拆分垂直拆分一些列不常用,一些...

2018-04-01 09:44:22 99

空空如也

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

TA关注的人

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