1. 程式人生 > >weekly 8

weekly 8

Algorithm

1.Merge Two Sorted Lists

  • What 兩個連結串列増序合併

  • How 兩個連結串列值比較然後插到新連結串列中,返回新連結串列;如果直接用其中一個連結串列然後另一個對其比較插入可能效率會快點。
  • Key Codes
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1!=null&&l2==null){
            return l1;
        }
        if(l1==null&&l2!=null){
            return l2;
        }
        if(l1==null&&l2==null){
            return null;
        }
        int a;
        if(l1.val<=l2.val){
            a=l1.val;l1=l1.next;
        }else{
            a=l2.val;l2=l2.next;
        }
        ListNode temp = new ListNode(a);
        ListNode b = new ListNode(0);
        b.next=temp;
        while(l1!=null||l2!=null){
            if(l1!=null&&l2!=null){
                if(l1.val<=l2.val){
                    temp.next = new ListNode(l1.val);l1=l1.next;
                }else{
                    temp.next = new ListNode(l2.val);l2=l2.next;
                }
                temp=temp.next;
                continue;
            } else if(l1==null){
                temp.next= new ListNode(l2.val);l2=l2.next;
                temp=temp.next;
                continue;
            } else if(l2==null){
                temp.next= new ListNode(l1.val);l1=l1.next;
                temp=temp.next;
                continue;
            }
        }
        temp.next=null;
        return b.next;
    }
}

Review

Report: Google to pay Apple $9 billion to remain default search engine on Safari

  • What 花多少錢能成為Safari的預設搜尋引擎。

  • How

  • 1.Google在2014年花了$10億左右,2017年是$30億,2018年是$90億,預計明年將是$120億,作為Safari的預設搜尋引擎的費用。
  • 2.Safari 是世界第二大的瀏覽器,僅次於 Chrome。
  • 3.全球市場份額:Chrome 59.7%,Safari 14.5%。美國市場份額:Chrome 49%,Safari 31%。
  • 4.為什麼Google要這麼做?考慮到Safari是第二大瀏覽器(因為iPhone),Google作為其預設搜尋引擎有助於保持搜尋巨頭的移動搜尋優勢,鞏固覆蓋範圍和廣告點選量。

Tip

  • What 遍歷Map的四種方法

  • How

    • 第一種:普遍使用,二次取值
  System.out.println("通過Map.keySet遍歷key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  • 第二種
  System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  • 第三種:推薦,尤其是容量大時
  System.out.println("通過Map.entrySet遍歷key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  • 第四種
  System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }

Share

蘋果Apple ID洩露調查:撞庫或雲上貴州內鬼可能性比較高