package ygy.test.week10;
import java.util.HashMap;
import java.util.Map;
/**
* Created by guoyao on 2017/11/4.
*/
public class TwoSumIIInputarrayissorted {
public int [] twoSum (int [] numbers, int target) {
if (numbers == null || numbers.length == 0 ) return null ;
Map<Integer, Integer> map=new HashMap<>();
for (int i = 0 ; i < numbers.length ; i ++) {
int remain = target - numbers[i] ;
if (map.containsKey(remain)) {
return new int []{map.get(remain)+1 ,i+1 };
}
map.put(numbers[i], i);
}
return null ;
}
public int [] twoSum_1 (int [] numbers, int target) {
int l = 0 , r = numbers.length - 1 ;
while (numbers[l] + numbers[r] != target) {
if (numbers[l] + numbers[r] > target) r--;
else l++;
}
return new int []{l + 1 , r + 1 };
}
public int [] twoSum_2 (int [] num, int target) {
int [] indice = new int [2 ];
if (num == null || num.length < 2 ) return indice;
int left = 0 , right = num.length - 1 ;
while (left < right) {
int v = num[left] + num[right];
if (v == target) {
indice[0 ] = left + 1 ;
indice[1 ] = right + 1 ;
break ;
} else if (v > target) {
right --;
} else {
left ++;
}
}
return indice;
}
}
Min Stack
package ygy.test.week10;
import java.util.Stack;
/**
* Created by guoyao on 2017/11/3.
*/
public class MinStack {
Integer min = Integer.MAX_VALUE ;
Stack<Integer> stack=new Stack<>();
/** initialize your data structure here. */
public MinStack () {
}
public void push (int x) {
if (x <= min) {
stack.push(min);
min = x ;
}
stack.push(x);
}
public void pop () {
if (stack.pop().equals(min))
min=stack.pop();
}
public int top () {
return stack.peek() ;
}
public int getMin () {
return min ;
}
public static void main (String[] args) {
MinStack minStack=new MinStack();
minStack.push(512 );
minStack.push(-1024 );
minStack.push(-1024 );
minStack.push(512 );
minStack.pop();
System.out.println(minStack.getMin());
minStack.pop();
System.out.println(minStack.getMin());
minStack.pop();
System.out.println(minStack.getMin());
}
}
/**
* Your MinStack object will be instantiated and called as such:
* MinStack obj = new MinStack();
* obj.push(x);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.getMin();
*/
Intersection of Two Linked Lists
package ygy.test.week10;
/**
* Created by guoyao on 2017/11/3.
*/
public class IntersectionofTwoLinkedLists {
public static void main (String[] agrs) {
}
public ListNode getIntersectionNode (ListNode headA, ListNode headB) {
ListNode reverseA=reverse(headA);
ListNode reverseB=reverse(headB);
ListNode temp = null ;
while (reverseA != null && reverseB != null ) {
if (reverseA == reverseB) {
temp = reverseA ;
reverseA =reverseA.next;
reverseB = reverseB.next ;
continue ;
}
}
return reverse(temp);
}
public ListNode reverse (ListNode head) {
ListNode cacheNode = null ;
while (head != null ) {
ListNode temp = head.next ;
head.next = cacheNode ;
cacheNode = head ;
head = temp;
}
return cacheNode;
}
public ListNode getIntersectionNode_1 (ListNode headA, ListNode headB) {
if (headA == null || headB == null ) return null ;
ListNode a = headA;
ListNode b = headB;
while ( a != b){
a = a == null ? headB : a.next;
b = b == null ? headA : b.next;
}
return a;
}
public ListNode getIntersectionNode_2 (ListNode headA, ListNode headB) {
int lenA = length(headA), lenB = length(headB);
while (lenA > lenB) {
headA = headA.next;
lenA--;
}
while (lenA < lenB) {
headB = headB.next;
lenB--;
}
while (headA != headB) {
headA = headA.next;
headB = headB.next;
}
return headA;
}
private int length (ListNode node) {
int length = 0 ;
while (node != null ) {
node = node.next;
length++;
}
return length;
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val=x;
next=null ;
}
}
/**
* Definition for singly-linked list.
*/
Excel Sheet Column Title
package ygy.test.week10;
/**
* Created by guoyao on 2017/11/5.
*/
public class ExcelSheetColumnTitle {
public static void main (String[] agrs) {
System.out.println(convertToTitle(30 ));
}
public static String convertToTitle (int n) {
StringBuilder result = new StringBuilder();
while (n>0 ){
n--;
result.insert(0 , (char )('A' + n % 26 ));
n /= 26 ;
}
return result.toString();
}
}