自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-04-06

作者:Matrix海子      出处:http://www.cnblogs.com/dolphin0520/ 一、内存模型相关概念 由于CPU处理速度比主存读写速度差异很大,大大降低指令执行速度 == 出现了CPU高速缓存 读取:主存 ==》 高速缓存 ==》 CPU 遇上多线程后,出现了缓存不一致现象 各个线程都有自己单独的高速缓存,在对主存的读写上,就出现了不一致的情况 解决方法:(硬件层面) 在总线加LOCK锁 == 阻塞了其他CPU对其他部件的访问(如内存) == 只有一个CPU能访问 ==》问题

2021-04-06 06:08:34 203

原创 数据类型& 变量 & JVM存储

数据类型 分为两类:原始数据类型 和 非原始数据类型(引用类型) 基本类型: byte short char int long float double boolean 数据类型 默认值 默认占用内存大小 boolean false 1 bit char ‘\u0000’ 2 byte byte 0 1 byte short 0 2 byte int 0 4 byte long 0L 8 byte float 0.0f 4 byte double 0.0d 8

2021-04-05 18:05:23 180 3

原创 Day12 Longest Common Prefix(3)

分治 递归需要反复理解 /** * @Author:lixici * @Date:2020/9/4 22:43 */ public class LongestCommonPrefix5 { public String longestCommonPrefix(String[] strs) { if(strs.length == 0){ return ""; } return findCommonPrefix(strs,0,s

2020-09-07 23:40:14 173

原创 Day11 Longest Common Prefix(2)

看了官方解析 昨天迷迷糊糊中想到了set,结果更慢了,13ms 40M 横向对比(把第一个字符串当做LCP,逐对对比,更新LCP,直到遍历完所有字符串,或者LCP为空时结束) 纵向对比 Code 横向对比 1ms 37.8M /** * @Author:lixici * @Date:2020/9/4 22:38 */ public class LongestCommonPrefix3 { public String longestCommonPrefix(String[] strs) {

2020-09-04 23:07:00 162

原创 Day10 Longest Common Prefix(1)

初解思路 第一反应就是二维数组,纵向对比。 关于对比方式,想到了char累加,平均等于第一个数组里的值即可(实际上第一个数组里的值等于平均值的话,就出错了。比如[“b”,“a”,“c”])。 乖乖采取挨个对比。 结果:11ms 39.9M --------------- (ΩДΩ) 再想想吧 Code /** * @Author:lixici * @Date:2020/9/3 22:28 */ public class LongestCommonPrefix { public String l

2020-09-03 23:20:35 125

原创 Day9 Roman to Integer(2)

看了精选题解 把static map换成switch并没有快,还多占用了0.3M内存(可能和用例有关吧)【6ms 40.3M】 发现自己中途过度理解题意(出现在前面的负数位,最多只出现一次) 其实无所谓是谁出现在谁前面是负数,只要是小的在大的前面,小的就算是负数。 发现了彩蛋实现 Code a. 去掉了多余的循环判断,保留switch 修改了对比前后数字的方法,没必要把数组传过去,按题意也不会出现多次,while换成if 结果:5ms 40.2M import java.util.HashMap; im

2020-09-02 22:57:22 132

原创 Day8 Roman to Integer(1)

思路 特殊情况 前 后 I=1(V=5或X=10) -1? +1{3} X=10(L=50或C=100) -10? +10{3} C=100(D=500或者M=1000) -100? +100{3} 从后往前逐字符读取 遇到任意字符,累加对应数字 特殊情况处理(表格中“前”的情况) 判断在前面连续出现几次,加上相应负值,指针迁移相应位 遇到 V或者X,判断I 遇到 L或者C,判断X 遇到 D或者M,判断C Code import java.util.HashMap; i

2020-09-01 23:49:46 162

原创 Day7 Palindrome Number

Code Reverse给的启示,又想到了之前看到过 y == x || y == x/10 回翻了当时的答案,各种特殊情况都不满足,补充。 (还写了一个map版的,更慢) 不必要的判断耗费时间? public boolean isPalindrome(int x) { int y = 0; // 1.个位数是回文 if(x>=0 && x<10) return true; // 2.负数不是回文 while(x>0){

2020-08-31 23:10:59 198

原创 Day6 Reverse Integer(2)

Point 整型/10 = 0 – 0(除完了) /和%运算是带符号的 -21/10 = -2 21/10 = 2 -21%10 = -1 21%10 = 1 Integer.MAX_VALUE(int最大值231-1); Integer.MIN_VALUE(int最小值-231) 溢出即时判断,不要放在循环结束 数字的pop和push pop: 1234取出最后一位4 最后一位 = 1234%10 源 = 1234/10 push 123追加一个4 源 = 123 * 1

2020-08-29 23:34:57 122

原创 Day5 Reverse Integer(1)

水了水了,时间不够,勉强凑出一版。 (长度为32的数组是来搞笑的,嗯,没错) public int reverse(int x) { int[] arr = new int[32]; long x1 = x; int sign = x1 < 0 ? -1 : 1; x1*=sign; int i = 0; do{ arr[i++] = (int)x1%10; x1/=10; }while(x1>=1);

2020-08-28 23:30:31 112

原创 Day4 TwoSum哈希表(两次遍历和一次遍历)

两次遍历 public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> numsMap = new HashMap<Integer,Integer>(); int length = nums.length; for(int i=0;i<length;i++){ numsMap.put(nums[i],i); } for(int i=0;i<l

2020-08-27 22:24:40 257

原创 Day3 排序能不能有助于Two Sum效率呢(简单交换排序)

结合了简单交换排序的 Two Sum。。。 leetcode上超出时间限制 也是,本来就是想减少暴力解决中的循环,排序和排除比target大的部分又用了一个for两层嵌套循环和while循环(我到底图个什么) 下面仅是简单交换排序(新的Two Sum提交就留在leetcode让我羞愧吧) import java.util.Arrays; /** * @Author:lixici * @Date:2020/08/26 22:41 */ public class SwapSort { //

2020-08-26 23:07:29 114

原创 Day2 leetcode - Two Sum引起的hash函数探索

写在前面 Two sum引起的学习。 暴力解决中发现忘记了如何创建数组 查看解决方案,产生了HashMap怎么做到O(1)的疑问 特别感谢:“淡腾的枫”的《HashMap中的hash函数》 创建一个int数组 int[] arr = new int[5]; int[] arr = {}; HashMap &,|,~,^,>>> Object.hashCode Object的hashCode方法 public native int hashCode(); 通过阅读方法上的注释,

2020-08-25 23:20:52 132

翻译 Day1 开启Github之旅

Hello World Guides 单词列表 英文 释义 time-honored tradition 历史悠久的传统 code hosting platform 代码托管平台 version control and collaboration 版本控制和协作 tutorial 教程 essentials 要领 repository 仓库 spreadsheets 电子表格 recommend 推荐 upper right corner 右上角 avat

2020-08-24 23:18:01 497

原创 Process.On--------在线画图工具(流程图、UI图、脑图等)

要做毕设了,业务关系理有些浆糊,于是要画个流程图,但是呢,不想下载软件,结果就在知乎回答中找到了这个全面而好用的在线画图工具-----Process.On 这是注册后的页面,上面的未命名文件是我新建的。 用户是分免费和付费的,免费功能包含主要功能了,完全够用,但是付费也不贵。    提供默认的多种模版,还提供其他用户上传的模版。 免费用户个人文件数量只

2017-04-18 20:53:14 20307

空空如也

空空如也

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

TA关注的人

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