LeetCode热题100道-Day01

12,210 阅读1分钟

LeetCode热题100道-Day01

1. 两数之和

  • 使用两层for循环遍历数组,让数组的所有两数之和与target比较,得出下标存储在新数组然后返回。
class Solution {                                                            
    public int[] twoSum(int[] nums, int target) {
        int[] a = new int[2]; 
        lab:
        for(int i=0;i<nums.length;i++){
            for(int j=i+1;j<nums.length;j++){
                if(target == nums[i]+nums[j]){
                    a[0]=i;
                    a[1]=j;
                    break lab;
                }
            }
        }
        return a;
    }
}

2. 两数相加

  • 创建两个空结点l3和l4,如果l1和l2都不为null,则把val相加,用结果创建新结点,l3指向头结点,l4指向尾结点,之后l1和l2各自指向自己的下一个结点,直到跳出循环。
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode l3 = null;
        ListNode l4 = l3;
        
        int carry = 0;

        while(l1 != null || l2 != null || carry != 0){
            int a = l1 != null ? l1.val : 0;
            int b = l2 != null ? l2.val : 0;
            int c = a + b + carry;
            if(l3 == null){
                l3 =l4 = new ListNode(c % 10);
            }else{
                l4.next = new ListNode(c % 10);
                l4 = l4.next;
            }
            
            carry = c / 10 ;
           
            if(l1 != null){
                l1 = l1.next;
            }
            if(l2 != null){
                l2 = l2.next;
            }

        }
        
        return l3;         
    }
}

3. 无重复字符的最长子串

  • 创建一个数组并初始化为-1,用for循环把字符串的字符转换为数字,a数组记录字符在字符串中的位置,start记录重复字符第一次出现的位置,val记录无重复的子串的大小。
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int[] a = new int[128];
        for(int i = 0; i < a.length; i++){
            a[i] = -1;
        }
        int n = s.length();
        int val = 0;
        int start = 0;
        for(int i = 0; i < n; i++){
            int index = s.charAt(i);
            start = Math.max(start, a[index] + 1);
            val = Math.max(val, i - start + 1);
            a[index] = i;
        }

        return val;
    }
}