LeetCode100道 day01

89 阅读1分钟

LeetCode100道 day01

1.俩数之和

  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

  • 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

  • 你可以按任意顺序返回答案。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] ints = new int[2];
        Map<Interger, Integer> Map = new HashMap<Interger, Integer>();
         for(int i=0;i<nums.length;i++){
             if(Map.containsKey(num[i])){
                 ints[0]=Map.get(num[i]);
                 ints[1]=i;
             }
             //map 可以存放多个用例
             Map.put(target-nums[i],i);

         }
    }

2.俩数相加

  • 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

  • 请你将两个数相加,并以相同形式返回一个表示和的链表。

  • 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
      ListNode number=new ListNode(0);
      ListNode numberlist=number;
        Integer numberAdd=0;
        while(l1 !=null || l2 !=null || numberAdd !=0){
            int l1Add = l1!=null ? l1.val :0;
            int l2Add = l2!=null ? l2.val :0;
            int sum =l1Add+l2Add+numberAdd;
            numberAdd = sum/10;
            ListNode add = new ListNode(sum %10 );
            numberlist.next = add;
            numberlist=add;
            if(l1!=null)l1=l1.next;
            if(l2!=null)l2=l2.next;
        }
        return number.next;
    }
    
}

3.无重复最长子串

  • 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
class Solution {


        public int lengthOfLongestSubstring(String s) {
        int number =1;
        int maxnumber=1;
        String b="";
        if(s.equals("")){
            return 0;
        }
        return MaxString(s,number,maxnumber,b);


    }
   public int MaxString( String s,Integer max,Integer maxN,String b){
        for (int i = 0; i <  s.length(); i++) {
              b="";
               max=1;
              b=b+ s.charAt(i);
            for( int j=i+1;j< s.length();j++){
            char c = s.charAt(j);
            String d=c+"";
          
            
            if(!b.contains(d)){
                b=b+(d);
                max=max+1;
                  if(max>maxN) {
                    maxN = max;
                  }
            }else{
               
            break;
            }
        }
        }

        return maxN;
    }
}