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.
Tuesday, October 31, 2023
Trading Psychology: What it is and Importance | Investopedia
Overcoming cognitive biases and mitigating emotional biases are key for sustainable trading
Trading and investment psychology as well as behavioral finance have evolved over the years, driven by advances in psychology, economics, and technology. Initially, the conversation amongst market participants, traders and financial theorists surrounded the idea of the Efficient Market Hypothesis (EMH), where it was assumed that individuals were rational beings and that the financial markets were efficient.1
The Library of Economics and Liberty. "Efficient Capital Markets"
Then, in the 1970s, Prospect Theory was introduced. This challenged the rationality assumption and highlighted the role of biases in decision making. Further along the timeline, in the 1990s, behavioral finance emerged. This was a recognition that investors, traders and individuals in general are prone to cognitive and emotional biases as well as heuristics that affect their investment decisions.23
National Bureau of Economic Research. "Thirty Years of Prospect Theory in Economics: A Review and Assessment"
The Library of Economics and Liberty. "Efficient Capital Markets"
SABR stock | Morningstar analysis report | August 2023
Sabre's financial health was tested in 2020, as lower demand from COVID-19 and higher incremental investment into new markets and the cloud, caused its near-term net debt/adjusted EBITDA to breach covenants. While Sabre's net debt/adjusted EBITDA ended 2019 at 3.1 times, it turned negative in 2020 and 2021, and was at an elevated 60 times ratio in 2022 as EBITDA was barely positive. Sabre's liquidity profile remains under duress, as a simmering U.S. regional banking crisis and slowing economic growth keep credit costs high and the pace of corporate travel recovery uncertain. To this point, Sabre recently raised $700 million private tender at 16% payment-in-kind rates, which was used to pay 2025 maturing debt. We expect Sabre's net debt/adjusted EBITDA to improve to 7.5 times in 2024, followed by 3.9 in 2025. The company's EBIT/interest coverage was 2.3 times in 2019 and is expected to surpass that level by 2028. We project free cash flow generation of $1.6 billion during 2023-27.
Steven Anthony Ballmer
Steven Anthony Ballmer (/ˈbɔːlmər/; March 24, 1956)[1] is an American billionaire businessman and investor who served as the chief executive officer of Microsoft from 2000 to 2014.[1] He is the owner of the Los Angeles Clippers of the National Basketball Association (NBA). As of October 2023, Bloomberg Billionaires Index estimates his personal wealth at around $115 billion, making him the fifth-richest person in the world.[2]
Ballmer was hired by Bill Gates at Microsoft in 1980, and subsequently left the MBA program at Stanford University. He eventually became president in 1998, and replaced Gates as CEO on January 13, 2000.[3][4] On February 4, 2014, Ballmer retired as CEO and was replaced by Satya Nadella; Ballmer remained on Microsoft's Board of Directors until August 19, 2014, when he left to prepare for teaching a new class.[5][6]
His tenure as Microsoft CEO is widely viewed as mixed. The company tripled sales and doubled profits, but lost its market dominance and missed out on 21st-century technology trends such as the ascendance of smartphones in the forms of iPhone and Android.[7][8][9]
His ownership of the Clippers has generally been well-received. Players and sportswriters consider him a marked improvement over previous owner Donald Sterling, citing his enthusiasm for the team as well as his willingness to spend large amounts of money to acquire superstar players and finance the construction of Intuit Dome.[10][11]
微软前CEO鲍尔默超越盖茨,也是NBA球队老板
IT之家 10 月 31 日消息,微软创始人比尔.盖茨的前助理、微软前 CEO 史蒂夫.鲍尔默(Steve Ballmer)现在已经成为世界上最富有的人之一,其财富可能很快就会超过这位世界著名的微软联合创始人和他的前老板。
Monday, October 30, 2023
PROCURIFY CLOSES $68-MILLION CAD SERIES C TO INVEST IN AI, GLOBAL EXPANSION OF SPEND MANAGEMENT PLATFORM
Ten Coves Capital, EDC join existing backers Information VP, HarbourVest.
Vancouver-based spend management and procurement software startup Procurify has secured more than $68 million CAD ($50 million USD) in Series C funding.
The all-equity, all-primary round closed in the summer and was led by United States-based FinTech investor Ten Coves Capital and included a co-investment from fellow new investor Export Development Canada. It also saw participation from existing Procurify backers like Toronto’s Information Venture Partners and Boston-based HarbourVest Partners.
Procurify’s Series A round comes over four years after the company closed $26 million CAD in Series B financing. This latest capital brings Procurify’s total funding to more than $95 million. Procurify plans to use the funding to fuel its global expansion, roll out new payment capabilities, and strengthen its core procure-to-pay platform with artificial intelligence (AI).
Founded in 2013, Procurify aims to take some of the pain out of enterprise procurement. The company sells an all-in-one intelligent spend management platform to mid-market organizations. Procurify’s solution combines purchasing, accounts payable automation, and data analytics into a single platform. Today, Procurify helps hundreds of customers across dozens of industries manage more than $40 billion CAD in global spending, with a list of clients that includes Questrade, SkipTheDishes, Hootsuite, and Asana.
“Understanding how money exits the company is just as crucial as tracking the money flowing in,” Procurify co-founder and CEO Aman Mann said in a statement. “Not only do we want our customers around the globe to spend wisely and grow during the best of times, we also want them to leverage responsible spend practices to thrive during the worst of times.”
A Procurify spokesperson declined to disclose Procurify’s exact valuation as part of its Series C funding to BetaKit but claimed that it was “a significant up round” compared to its previous financing.
Within the procurement software space, Procurify’s competitors include incumbents like Coupa and SAP Ariba, enterprise resource management software solutions that have procurement features, such as NetSuite, as well as other tech startups, like Precoro and Zip. Compared to the competition, the company spokesperson claimed that Procurify offers “the most complete, affordable, and user-friendly solution for mid-market organizations.”
Ten Coves Capital invests in high-growth B2B software companies across the FinTech ecosystem. In addition to Procurify, the Connecticut-based growth equity firm’s Canadian portfolio also includes Q4 Inc, 7shifts, TealBook, TouchBistro, and Versapay.
According to the Procurify spokesperson, the pandemic brought some tailwinds for Procurify, including an acceleration in digital transformation efforts as it highlighted the need for cost savings, efficiency, and better risk management.
Amid a tough economic environment, Procurify claimed that the demand for its tech has grown and the firm has seen a 100 percent year-over-year increase in new sales, all while the startup has managed to avoid layoffs and grow to 171 employees.
Steve Lula, partner at Ten Coves Capital, is joining Procurify’s board as part of the round. In a statement, Lula cited Procurify’s performance during these challenging market conditions as evidence of the need for intelligent spend management solutions.
According to Lula, Procurify’s expertise in procurement, coupled with its plan to roll out enhanced payment offerings and use AI to offer data-driven predictive insights, position the startup “to shape and lead the future of the procure-to-pay market.”
While Procurify already has hundreds of customers worldwide, the startup sees room to continue to expand and deepen its global presence in Europe and the Oceania markets.
UPDATE (10/17/23): This story was updated to note responses from a Procurify spokesperson.
Suncor stock | 2020 | My youtube.com video
Here is the link.
- Suncor might go to $10/ share? I did not know what was bottom? $1800 dollar loss, 1000 shares in 2020. $20.29, $18/ share.
- 10 year saving $60,000 Canadian dollars, invested on Canadian oil stocks.
- I tried to listen the videos a few times first, and then take some notes here.
- There is no perfect solution for short term investor. Only way is to bet on 3 year return. Get in and then leave in the market for 3 years.
2049. Count Nodes With the Highest Score
Here is the discussion post.
Here is the gist.
Intuition
I am review unsolved 40 medium level tree algorithms, and then I came cross this algorithm. I thought about the solution for near 10 minutes, and then I decided to study only C# solution shared.
Approach
Here are highlights:
- Build a graph using hashmap, C# Dictionary class
- Define three variables inside the class
- Apply DFS to calculate the score
- Write a test case for example 1, and debug through the code
I did not come out the idea by myself, so I took extra time to test the following test cases:
- int[]{-1}, analysis: maxScore = 1, number of nodes = 1
- int[]{-1, 0}, analysis: maxScore = 1, but number of nodes is 2; Remove 0 or remove 1
- int{-1, 0, 0}, analysis: maxScore = 2, and number of nodes is 2, remove 1 or remove 2.
- int[]{-1, 2, 0, 2, 0}, result: 3
static void Main(string[] args)
{
var test = new Solution();
var result1 = test.CountHighestScoreNodes(new int[]{-1}); // 1
var result2 = test.CountHighestScoreNodes(new int[]{-1,0}); // maxScore = 1, but number of nodes is 2; two cases, remove 0, remove 1
var result3 = test.CountHighestScoreNodes(new int[]{-1, 0, 0}); // maxScore = 2, and number of nodes is 2
var result4 = test.CountHighestScoreNodes(new int[]{-1, 2, 0, 2, 0});
}
Complexity
- Time complexity:
O(N), N is total number of nodes in the tree. Apply post order traversal once.
- Space complexity:
Code
public class Solution {
Dictionary<int, int[]> children = new Dictionary<int, int[]>();
long maxScore = 0;
int numberNodes = 0;
public int CountHighestScoreNodes(int[] parents)
{
int n = parents.Length;
var lstParents = new List<int>(parents);
// build a graph based on parents - left or right child - does not matter
for (int i = 0; i < parents.Length; i++)
{
var childNodes = new int[] { -1, -1 };
// two children
//
var parentNode = parents[i];
if (children.ContainsKey(parentNode))
{
children[parentNode][1] = i;
}
else
{
childNodes[0] = i;
children.Add(parentNode, childNodes);
}
}
// Extra - no children
// Leaf node
for (int i = 0; i < parents.Length; i++)
{
var arr = new int[] { -1, -1 };
if (!children.ContainsKey(i))
{
children.Add(i, arr);
}
}
countNodesDFS(0, n);
return numberNodes;
}
/// <summary>
/// Return number of nodes that have the highest score
/// node's value from 0 to n - 1
/// </summary>
/// <param name="root"></param>
/// <param name="n"></param>
/// <returns></returns>
private long countNodesDFS(int root, int n)
{
long score = 0;
long subtreeCount = 0;
if (root == -1)
{
return 0;
}
long leftCount = countNodesDFS(children[root][0], n);
long rightCount = countNodesDFS(children[root][1], n);
subtreeCount = leftCount + rightCount + 1;
long remain = n - subtreeCount;
score = (leftCount == 0 ? 1 : leftCount) * (rightCount == 0 ? 1 : rightCount);
score *= remain == 0 ? 1 : remain;
if (score > maxScore)
{
maxScore = score;
numberNodes = 1;
}
else if (score == maxScore)
{
numberNodes++;
}
return subtreeCount;
}
}