最近,听了同学的建议准备刷leetcode的算法题目,提高下自己的算法能力。
不多说,直接来题:
一.
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].答案用java写的:
public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result=new int[2];
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
int temp=nums[i]+nums[j];
if(temp==target){
result[0]=i;
result[1]=j;
}
}
}
return result;
}
}
二.
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
boolean isC=false;
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode finresult=new ListNode(0);
ListNode result=finresult;
while(l1!=null||l2!=null){
int x=(l1!=null)? l1.val :0;
int y=(l2!=null)? l2.val :0;
int temp=0;
if(isC){
temp=x+y+1;
isC=false;
}
else{
temp=x+y;
}
if(temp>=10){
isC=true;
result.next=new ListNode(temp%10);
}
else{
result.next=new ListNode(temp);
}
if(l1!=null&&l1.next!=null){
l1=l1.next;
}else{
l1=null;
}
if(l2!=null&&l2.next!=null){
l2=l2.next;
}
else{
l2=null;
}
result=result.next;
}
if(isC){
result.next=new ListNode(1);
}
return finresult.next;
}
}
三.
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
答案用js写的:
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
var a=s.length;
if(s==""){
var answer=0;
}else{
var answer=1;
}
var repeylist=[];
var i=1;
var answertemp;
var k=0;
var is=false;
while(i<a){
is=false;
var word=s.charAt(i);
for(var j=k;j<i;j++){
var temp=s.charAt(j);
if(word==temp){
k=j+1;
is=true;
break;
}
}
if(!is){
answertemp= i-k+1;
if(answertemp>answer){
answer=answertemp;
}
}
i++;
}
return answer;
};
四.
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
Example 1: