摘要: 时间O(n),空间O(1) 1 public int[] plusOne(int[] digits) { 2 int len=digits.length,tag=1; 3 for(int i=len-1;i>=0;i--){ 4 tag=digits[i]+tag; 5 digits[i]=tag% 阅读全文
posted @ 2021-04-27 09:20 jchen104 阅读(15) 评论(0) 推荐(0)
摘要: 三个数相乘的最大值,有2种可能,(1)3个最大的正数(2)2个最小的负数和1个最大的正数。 方法一:先排序,排序后最小的负数和最大的正数位置就是确定的了 (1)必然是nums[n-3],nums[n-2],nums[n-1] (2)必然是nums[0],nums[1],nums[n-1] 时间O(n 阅读全文
posted @ 2021-04-26 09:29 jchen104 阅读(355) 评论(0) 推荐(0)
摘要: 本题的难点在于存在负数,我们知道非负数的平方数排序规则一定与 原数组顺序相同,但这里存在负数,导致无法直接确定 方法一:先计算出所有数的平方,然后排序 时间O(nlogn)(排序所用时间),空间O(logn)(排序所申请栈空间与深度有关,这里忽略了返回要求数组的空间) 1 class Solutio 阅读全文
posted @ 2021-04-25 10:30 jchen104 阅读(60) 评论(0) 推荐(0)
摘要: 利用哈希映射的思路来处理,记录子串在父串中每个字符出现的位置 时间O(nk)(k与父串中相应字符出现离散度有关,最差情况下k=m,即父串的长度),空间O(h)(h为字串离散度,本题为26) public boolean canConstruct(String ransomNote, String m 阅读全文
posted @ 2021-04-23 10:38 jchen104 阅读(33) 评论(0) 推荐(0)
摘要: 删除链表元素我们很熟了,但需要确保head如果去除的话该如何返回的问题。 public ListNode removeElements(ListNode head, int val) { ListNode res = new ListNode(0); res.next=head; ListNode 阅读全文
posted @ 2021-04-21 11:26 jchen104 阅读(31) 评论(0) 推荐(0)
摘要: 迭代链表中的每个节点,依次递推 public ListNode deleteDuplicates(ListNode head) { ListNode curr=head; while(curr!=null && curr.next!=null){ // 如前后2个节点相同,则丢弃next节点,将当前 阅读全文
posted @ 2021-04-21 11:16 jchen104 阅读(42) 评论(0) 推荐(0)
摘要: 对于这题,参数只有需要被删除的这个元素。 这里我们以 4,5,1,9为例,我们要删除1,我们可以将9覆盖1的val,同时将1的next指向9的next, 这样就相当于我们用后一节点的值覆盖当前节点,然后丢下后续节点,直接指向next.next节点。 public void deleteNode(Li 阅读全文
posted @ 2021-04-21 11:03 jchen104 阅读(40) 评论(0) 推荐(0)
摘要: 方法一:使用set来存储2个数组的元素 时间O(m+n),空间O(m+n) public int[] intersection(int[] nums1, int[] nums2) { if (nums1==null || nums2==null || nums1.length==0 || nums2 阅读全文
posted @ 2021-04-21 10:48 jchen104 阅读(57) 评论(0) 推荐(0)
摘要: 原谅我是个数学渣渣,幸好有甜姨的解析,结论就是迭代所得的数字必然是收敛的 由此便得到了2种可能情况 (1) 收敛为1 (2) 迭代结果出现环,无法收敛 看到这两个图其实我们就想到了之前做的题目,判断链表是否存在环,用的办法是佛洛依德算法,快慢指针判断, 于是我们这里也可以用快慢指针来实现 class 阅读全文
posted @ 2021-04-21 10:16 jchen104 阅读(48) 评论(0) 推荐(0)
摘要: 我们知道10=5*2,那么末尾0的个数实际上就是看2和5出现的次数,因为 只要是偶数就可以拆分成2*x,2的出现次数必然高于5,所以实际上结果 是由5的出现次数决定的。 比如25的末尾零=(1*5)(2*5)(3*5)(4*5)(5*5),在对5取余后由于25=5*5,所以实际上还有一层5, 由此可 阅读全文
posted @ 2021-04-19 10:21 jchen104 阅读(56) 评论(0) 推荐(0)