- 博客(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
空空如也
百度地图开发问题出现错误
2015-10-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人