![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
灰色大猫
这个作者很懒,什么都没留下…
展开
-
LeetCode 166 Fraction to Recurring Decimal
分子除以分母,得到整数部分和余数。 如果余数为0,则直接返回整数部分的字符串形式。 如果余数不为0,则字符串开始为整数部分加小数点。 考虑到正负数相除的问题。如果分子分母一正一负,利用异或运算符判断,如果异或结果是true,则对分子分母取绝对值。 如果异或结果是false,则无需作处理。 另外,如果,分子特别大,而分母特别小,这样结果可能就会溢出int范围,所以在原创 2017-12-03 21:41:49 · 213 阅读 · 0 评论 -
LeetCode 207 Course Schedule
class Solution { public boolean canFinish(int numCourses, int[][] prerequisites) { ArrayList[] graph = new ArrayList[numCourses]; int[] degree = new int[numCourses]; Queue原创 2017-12-05 13:38:16 · 185 阅读 · 0 评论 -
LeetCode 210 Course Schedule II
class Solution { public int[] findOrder(int numCourses, int[][] prerequisites) { int[] map = new int[numCourses]; for(int i = 0;i<prerequisites.length;i++){ int k = pre转载 2017-12-05 14:22:41 · 214 阅读 · 0 评论 -
LeetCode 136 SingleNumber
题目要求时间复杂度为O(n),且不分配额外空间。 利用for循环,逐一对数组元素进行异或运算。 以下是关于异或的知识点: 1. 如果a等于b 则 a^b = 0; 2 如果a不等于b 则a^b = 1 对于任意整数n,n^0 = n ,而n^n = 0 异或运算是满足交换结合律的 假设数组中一共有2n+1个数,n个数出现了两次,一个数出现了一次。 将所有2原创 2017-11-26 16:02:22 · 194 阅读 · 0 评论 -
LeetCode 131 Palindrome Partitioning
此题参考了discuss里的做法,并在自己阅读后做了注释 之后会着重学习深度优先遍历和广度优先遍历 class Solution { public List> partition(String s) { List> result = new ArrayList>(); boolean[][] dp = new boolean[s.length()][s.原创 2017-11-26 23:55:16 · 166 阅读 · 0 评论 -
复杂链表的复制(不使用额外空间)
思路:比如说原链表是ABCD。则先复制结点A' B' C' D',分别连接在ABCD后面。然后遍历ABCD,得知每个原结点的random指向。那么复制结点的random指向原结点random的后一个。(A---C,则A'----C后面的C') 再次遍历链表,将所有原结点跨个相连,将复制结点跨个相连。返回复制结点的第一个即可。 /* public class RandomListNode { ...原创 2019-06-09 16:01:50 · 126 阅读 · 0 评论