- 博客(7)
- 收藏
- 关注
原创 《剑指Offer》- Java版(5)
5.替换空格题目描述:将一个字符串中的空格替换成 “%20”解题思路:1.填充字符使得字符串的长度等于替换之后的长度;2.指定两个指针p, q,指向原串末尾和新串末尾,逆序替换public static String replaceSpace(StringBuffer str){ int p = str.length() - 1; for (int i = 0; i <= p; i++) { if(str.charAt(i) == ' ')
2020-09-18 08:38:42
96
原创 《剑指Offer》- Java版(4)
4.二维数组中的查找题目描述:给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。解题思路:该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。因此选定右上角为基准,将数与基准比较,然后对应加减行列public static boolean find(int target, int[][] arr){ if(arr == null || arr.length == 0 || arr[0].length == 0)
2020-09-17 14:32:47
94
原创 《剑指Offer》- Java版(3)
3.数组中重复的数字题目描述:在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。解题思路:遍历数组,判断索引与该索引上的值是否一样,如果不一样就判断以该值为索引的元素值,与该值是否一致,如果一样就重复,不一样交换他们使之归位public boolean find(int[] arr, int[] duplication){ if(arr == null || ar
2020-09-17 11:33:15
130
原创 synchronized锁升级
Java对象头和MonitorJava对象头,以Hotspot虚拟机为例,Hotspot的对象头主要包括两部分数据:Mark Word(标记字段)锁状态存储内容存储内容无锁对象的hashCode、对象分代年龄、是否是偏向锁(0)01偏向锁偏向线程ID、偏向时间戳、对象分代年龄、是否是偏向锁(1)01轻量级锁指向栈中锁记录的指针00重量级锁指向互斥量(重量级锁)的指针10默认存储对象的HashCode,分代年龄和锁标志位信息。这些信
2020-08-28 09:17:23
166
原创 Java多线程基础
线程的概念 一个程序不同的执行路径启动方式继承Thread类实现Runnable接口线程池sleep_yield_joinsleep方法:导致当前执行的线程休眠(暂时停止执行)的指定毫秒数,不释放锁yield方法:放弃当前的CPU资源,进入等待队列join方法:等待该线程终止线程状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OOdCuMDG-1598517469735)(C:\Users\livorwill\Desktop\1.111\学习
2020-08-27 16:40:49
114
原创 JDK8的ConcurrentHashMap会造成CPU100%
官方BUG报告:https://bugs.openjdk.java.net/browse/JDK-8062841如何避免?不在递归中使用ConcurrentHashMap的computeIfAbsent方法 使用分段锁 升级JDK
2019-10-30 09:33:59
381
转载 0-1背包问题——Java
问题描述有N件物品,背包的容量W,每个物品重w,价值为v。要求每个物品只能只用0或1次,目的要使背包里总价值最高。用一个函数f表示当前背包状态:f(k ,w)表示当前背包装了k个物品,容量还剩w时的价值。那么f(k ,w)可能从两种状态达到:f(k ,w) = f(k-1, w) —— 当第k件物品放不下时,当前背包价值和之前价值一样 f(k ,w) = max { f(k-1, w...
2019-10-11 17:37:11
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人