方法一:普通排序查找,将两个数组排成一个数组,时间复杂度为O(m+n),这期间不需要全部排序完,只需要排到中位数即可。 class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int n1=0,n2=0; double mid; int length=(nums1.length+nums2.length)/2; int odd…
这道题比较简单,只要去重,无脑联想集合总没有错,因此使用数据结构HashSet。顺便复习了代码单元和码点的概念,分别用方法一(lengthOfLongestSubstring1)和方法二(lengthOfLongestSubstring2)而完成,但是时间复杂度是O(n²),因此思考别的算法。 参考此题的算法介绍,可以采用滑动窗口算法,方法三(lengthOfLongestSubstring3)将时间复杂度降为O(n),只遍历字符串一次。因为字符集是ASCII,取值在[0,128)之间,因此还有更简便的算法,之后再…
本题关键在于进位和补零,我是用递归实现的。使用递归方法应避免NullPointerException异常。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val =…