class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
return new int[]{i,j};
}
}
}
return new int[0];
}
}
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode p1 = l1, p2 = l2;
ListNode dummy = new ListNode(-1);
ListNode p = dummy;
int carry = 0, newVal = 0;
while (p1 != null || p2 != null || carry > 0) {
newVal = (p1 == null ? 0: p1.val) + (p2 == null ? 0: p2.val) + carry;
carry = newVal / 10;
newVal %= 10;
p.next = new ListNode(newVal);
p1 = p1 == null? null: p1.next;
p2 = p2 == null? null: p2.next;
p = p.next;
}
return dummy.next;
}
}
class Solution {
public int lengthOfLongestSubstring(String s) {
if (s.length() < 2) return s.length();
int flag=0;
int max = 0;
int len = 0;
for (int i = 0; i < s.length(); i++) {
int index = s.indexOf(s.charAt(i),flag);
if(index < i){
if(max<len){
max = len;
}
flag = index+1;
len = i-flag+1;
}
else{
len++;
}
}
return len>max?len:max;
}
}
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int n = nums1.length;
int m = nums2.length;
int[] array = new int[n+m];
System.arraycopy(nums1,0,array,0,n);
System.arraycopy(nums2,0,array,n,m);
Arrays.sort(array);
if((array.length) % 2 != 0){
int s = (n+m) / 2;
return array[s];
}else{
int a = (n+m) / 2;
return (array[a] + array[a-1]) *1.0 / 2
}
}
}
class Solution {
public:
string longestPalindrome(string s) {
int sum1 = 0, sum2 = 0;
string res1, res2;
for(int i = 0; i < s.length(); i++){
int m = i, n = i;
while(m - 1 >= 0 && n + 1 < s.length()){
if(s[m - 1] == s[n +1]) m--, n++;
else break;
}
if(n - m + 1 > sum1){
sum1 = n - m + 1;
res1 = s.substr(m, sum1);
}
}
for(int i = 0; i < s.length(); i++){
int m = i + 1, n = i;
while(m - 1 >= 0 && n + 1 < s.length()){
if(s[m - 1] == s[n +1]) m--, n++;
else break;
}
if(n - m + 1 > sum2){
sum2 = n - m + 1;
res2 = s.substr(m, sum2);
}
}
return sum1 >= sum2 ? res1 : res2;
}
};