Introduction
I like to make a short comparison between JPM and CIT, and then talked about my purchase of CIT on highest position SPX 3300, and what I learn from the lesson.
From January 2015, she started to practice leetcode questions; she trains herself to stay focus, develops "muscle" memory when she practices those questions one by one. 2015年初, Julia开始参与做Leetcode, 开通自己第一个博客. 刷Leet code的题目, 她看了很多的代码, 每个人那学一点, 也开通Github, 发表自己的代码, 尝试写自己的一些体会. She learns from her favorite sports – tennis, 10,000 serves practice builds up good memory for a great serve. Just keep going. Hard work beats talent when talent fails to work hard.
| Ticker | Company | % Portfolio | Number of Shares | Value ($1000) |
|---|---|---|---|---|
| AMZN | Amazon Corp. | 5.90% | 47,048 | 91,730 |
| TEVA | Teva Pharmaceutical Industries Inc. | 4.57% | 7,918,362 | 71,107 |
| ADT | ADT Inc. | 4.08% | 14,673,544 | 63,390 |
| FTCH | Farfetch Ltd. | 4.02% | 7,901,925 | 62,425 |
| BABA | Alibaba Group Holdings | 3.80% | 304,100 | 59,141 |
| FB | Facebook Inc. | 3.78% | 351,945 | 58,704 |
| GOOGL | Alphabet Inc. | 3.72% | 49,809 | 57,876 |
| LEN | Lennar Corp. | 3.13% | 1,272,415 | 48,606 |
| ENDP | Endo International plc. | 3.11% | 13,084,395 | 48,412 |
| UAL | United Airlines Holdings Inc. | 3.07% | 1,510,980 | 47,671 |
| GNW | Genworth Financial Inc. | 3.05% | 14,285,142 | 47,427 |
| QUOT | Quotient Technology Inc. | 3.04% | 7,271,923 | 47,267 |
| BHF | Brighthouse Financial Inc. | 2.86% | 1,838,815 | 44,444 |
| MED | Medifast Inc. | 2.86% | 711,553 | 44,472 |
| BHC | Bausch Health | 2.85% | 2,860,370 | 44,336 |
| DAL | Delta Air Lines Inc. | 2.64% | 1,436,750 | 40,990 |
| PTON | Peloton Interactive Inc. | 2.60% | 1,524,370 | 40,472 |
| NXPI | NXP Semiconductors NV | 2.57% | 481,030 | 39,892 |
| BAC | Bank of America Corp. | 2.52% | 1,845,585 | 39,182 |
| OMF | OneMain Holdings | 2.40% | 1,951,260 | 37,308 |
| – – – | Others | 33.49% | 73,358,237 | 519,880 |
| – – – | Asset Under Management | 100.00% | 154,679,558 | 1,554,732 |
Investor Bill Miller said during Wednesday’s violent market dive that the current climate is one of the best buying opportunities of his lifetime.
“I think this is an exceptional buying opportunity,” Miller, chairman and chief investment officer of Miller Value Partners, said on CNBC’s “The Exchange” on Wednesday. “I don’t mean to put all the money in at once but I do think layering it in right now is the way to go.”
As Miller, 70, was speaking, the stock market had halted trading because the S&P 500 fell more than 7%, triggering the level 1 “circuit breaker.” Equities cratered on Wednesday as fears about the economic downfall from the coronavirus continued to grow. The Dow Jones Industrial Average fell more than 2,000 points.
我三十岁才上大学,既没有家学渊源,又不是聪慧过人。同是 77级大学生的李国平先生的儿子就说过,老三届 77 级读数学的几乎全军覆没。我认为前面要加个 “从农村出来,上大学之前就有了老婆孩子的” 这个定语才准确。知道自己不是念数学的料,那是到了大学三年级的时候。硬着头皮考研究生,不是因为有数学抱负,能把老婆孩子的户口从农村迁到城里,也是一份考量。
感谢南京大学何旭初先生根据我不错的考研成绩(其实主要考大学一二年级学的数学分析和线性代数),坚持送我出了国。感谢德国导师 Stoer 教授给了适合我能力的题目,宽容地让我慢慢独立思考,引发了我后来系列的研究工作。虽然我们在大学里也以悬梁刺股的精神学习,毕业后也兢兢业业工作,但毕竟丢失了读数学的黄金年龄,取得一些微薄成绩,运气的成分也很重要。
跨越古稀的那天,收到导师祝贺我生日的邮件。来信中他用德文说,人生70一定是回顾一生成就和困苦的好时机(70 Jahre geben Ihnen sicher Anlaß, auf Ihr gesamtes Leben mit allen Erfolgen aber auch Schwierigkeiten zurückzuschauen)。
困苦就没有必要说了。回想起来,唯 “二” 不安的是下面两条。
一是儿女年幼,需要爸爸照顾和陪同玩耍的时候,我却常年独自在外读书,把孩子丢给只读了小学,在农村终日劳作的他们的妈。虽然儿女们长大后也都考上大学,自己找了工作,我总觉得年少时缺乏父爱的孩子,长大后身上缺些什么。
二是初当导师时没有把自己才学疏浅的情况跟学生反复强调说清楚,招了一些南京大学的高材生当自己的研究生,否则,他们或许会发展的更好。这方面我在学术生涯后期就做得好一些。
/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
public class Solution {
// root 1, left -99, right -99, limit 1
public TreeNode SufficientSubset(TreeNode root, int limit) {
if(root.left == null && root.right == null && root.val < limit)
return null;
// preorder traversal the tree and save root to node paths sum into a hashmap
// int[] first one is sum, second one - 1 - leaf node - 0 - not leaf node
var map = new Dictionary<TreeNode, int[]>();
TreeNode parent = null;
preorderTraversal(root, map, 0);
// postorder traversal, and then calculate the root to leaf path
// remove nodes if need
// leaf node to current node sum
// TreeNode parent = null;
postOrderTraversal(root, map, parent, limit, true);
if(root.left == null && root.right == null)
return null;
return root;
}
/// root 1, left -99, right -99, limit 1
private void preorderTraversal(TreeNode root, Dictionary<TreeNode, int[]> map, int sumRootToP)
{
if(root == null)
return;
var sum = sumRootToP + root.val; // -99
var isLeaf = root.left == null && root.right == null; // false
var value = isLeaf? 1 : 0;
map.Add(root, new int[]{sumRootToP + root.val, value}); // {-98, 1}
preorderTraversal(root.left, map, sum);
preorderTraversal(root.right, map, sum);
}
// root 1, left -99, right -99, limit 1
private void postOrderTraversal(
TreeNode root,
Dictionary<TreeNode, int[]> rootToPMap,
TreeNode parent,
int limit,
bool isLeft)
{
if(root == null)
return;
// Left and right
postOrderTraversal(root.left, rootToPMap, root, limit, true);
postOrderTraversal(root.right, rootToPMap, root,limit, false);
// if root node is leaf node
if(rootToPMap[root][1] == 1)
{
var sum = rootToPMap[root][0]; // -98
if(sum < limit)
{
//leafMap.Add(root, false); // keep the leaf
if(parent != null && isLeft)
{
parent.left = null;
}
else if(parent != null )
{
parent.right = null;
}
else if(parent == null)
{
root = null;
}
}
}
else // not leaf node
{
if(root.left == null && root.right == null)
{
if(parent != null)
{
if(isLeft)
parent.left = null;
else
parent.right = null;
}
root = null;
}
}
}
}