摘要: 目录 Java线程安全 线程安全实现方法 Java线程安全 线程安全严谨定义:当多个线程访问一个对象时,如果不用考虑线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象是线程安全的。 Java语言中的各 阅读全文
posted @ 2018-06-28 20:52 张天气Up 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路:two-pointers思想,因为是单链表,没法得prevous点,直接遍历得到链表长度再重新遍历效率很低。 采用双指针思想,使得当一个指针处于链表末尾时,另一个指针恰好在倒数第k个节点。 1 public ListNode FindKth 阅读全文
posted @ 2018-06-28 14:48 张天气Up 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:用位运算来进行移1操作。(首先得知道数在计算机中都是以01来放置的) 1,若由一个数11100,当其减1为11011,即减1后会将该数最右边的1变为0,且后续的所有数取反。 2,将两数相与,则为11000,此时最右边的 阅读全文
posted @ 2018-06-28 11:39 张天气Up 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 矩形覆盖 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路:最初看到这题,只能通过画图归纳来寻找规律. n=1,return 1; n=2,return 2; n=3,return 3; n=4,retu 阅读全文
posted @ 2018-06-28 11:18 张天气Up 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:典型的动态规划问题,动态规划问题最关键的是把事件中的各种情形抽象为状态,然后找到前后状态之间的关系,写出状态转化方程,再翻译为代码。 可以考虑到题目中跳到第n层台阶有多少种跳法为一个状态,设置 阅读全文
posted @ 2018-06-28 10:44 张天气Up 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请 阅读全文
posted @ 2018-06-28 10:06 张天气Up 阅读(148) 评论(0) 推荐(0) 编辑