Day 37 | 738. Monotone Increasing Digits | 714. Best Time to Buy and Sell Stock | 968. BT Camera

该文详细记录了在LeetCode上的一系列算法题解,涉及股票的最大利润计算、保证单调递增数字的构建以及最小摄像头覆盖的二叉树问题。通过这些问题,展示了对数组、链表、二叉树结构的处理策略以及动态规划和深度优先搜索的应用。

Day 1 | 704. Binary Search | 27. Remove Element | 35. Search Insert Position | 34. First and Last Position of Element in Sorted Array
Day 2 | 977. Squares of a Sorted Array | 209. Minimum Size Subarray Sum | 59. Spiral Matrix II
Day 3 | 203. Remove Linked List Elements | 707. Design Linked List | 206. Reverse Linked List
Day 4 | 24. Swap Nodes in Pairs| 19. Remove Nth Node From End of List| 160.Intersection of Two Lists
Day 6 | 242. Valid Anagram | 349. Intersection of Two Arrays | 202. Happy Numbe | 1. Two Sum
Day 7 | 454. 4Sum II | 383. Ransom Note | 15. 3Sum | 18. 4Sum
Day 8 | 344. Reverse String | 541. Reverse String II | 替换空格 | 151.Reverse Words in a String | 左旋转字符串
Day 9 | 28. Find the Index of the First Occurrence in a String | 459. Repeated Substring Pattern
Day 10 | 232. Implement Queue using Stacks | 225. Implement Stack using Queue
Day 11 | 20. Valid Parentheses | 1047. Remove All Adjacent Duplicates In String | 150. Evaluate RPN
Day 13 | 239. Sliding Window Maximum | 347. Top K Frequent Elements
Day 14 | 144.Binary Tree Preorder Traversal | 94.Binary Tree Inorder Traversal| 145.Binary Tree Postorder Traversal
Day 15 | 102. Binary Tree Level Order Traversal | 226. Invert Binary Tree | 101. Symmetric Tree
Day 16 | 104.MaximumDepth of BinaryTree| 111.MinimumDepth of BinaryTree| 222.CountComplete TreeNodes
Day 17 | 110. Balanced Binary Tree | 257. Binary Tree Paths | 404. Sum of Left Leaves
Day 18 | 513. Find Bottom Left Tree Value | 112. Path Sum | 105&106. Construct Binary Tree
Day 20 | 654. Maximum Binary Tree | 617. Merge Two Binary Trees | 700.Search in a Binary Search Tree
Day 21 | 530. Minimum Absolute Difference in BST | 501. Find Mode in Binary Search Tree | 236. Lowes
Day 22 | 235. Lowest Common Ancestor of a BST | 701. Insert into a BST | 450. Delete Node in a BST
Day 23 | 669. Trim a BST | 108. Convert Sorted Array to BST | 538. Convert BST to Greater Tree
Day 24 | 77. Combinations
Day 25 | 216. Combination Sum III | 17. Letter Combinations of a Phone Number
Day 27 | 39. Combination Sum | 40. Combination Sum II | 131. Palindrome Partitioning
Day 28 | 93. Restore IP Addresses | 78. Subsets | 90. Subsets II
Day 29 | 491. Non-decreasing Subsequences | 46. Permutations | 47. Permutations II
Day 30 | 332. Reconstruct Itinerary | 51. N-Queens | 37. Sudoku Solver
Day 31 | 455. Assign Cookies | 376. Wiggle Subsequence | 53. Maximum Subarray
Day 32 | 122. Best Time to Buy and Sell Stock II | 55. Jump Game | 45. Jump Game II
Day 34 | 1005. Maximize Sum Of Array After K Negations | 134. Gas Station | 135. Candy
Day 35 | 860. Lemonade Change | 406. Queue Reconstruction by Height | 452. Minimum Number of Arrows
Day 36 | 435. Non-overlapping Intervals | 763. Partition Labels | 56. Merge Intervals


LeetCode 738. Monotone Increasing Digits

Question Link

class Solution {
    public int monotoneIncreasingDigits(int n) {
        String  s = String.valueOf(n);
        char[] chars = s.toCharArray();
        int start = s.length();
        for(int i = s.length() - 2; i >= 0; i--){
            if(chars[i] > chars[i+1]){
                chars[i]--;
                start = i + 1;
            }
        }

        for(int i = start; i < s.length(); i++)
            chars[i] = '9';
        
        return Integer.parseInt(String.valueOf(chars));
    }
}
  • When meeting chars[i - 1] > chars[i], let chars[i-1]-- and set chars[i] as 9. That can ensure these two digits become the largest monotone-increasing integers
  • The traverse order is from back to front. Because if we traverse from front to back, we can’t reuse the result of the last compare

LeetCode 714. Best Time to Buy and Sell Stock with Transaction Fee

Question Link

class Solution {
    public int maxProfit(int[] prices, int fee) {
        int buy = prices[0] + fee;
        int sum = 0;
        for(int p : prices){
            if(p + fee < buy)
                buy = p + fee;
            
            else if(p > buy){
                sum += p - buy;
                buy = p;
            }
        }
        return sum;
    }
}

LeetCode 968. BT Camera

Question Link

class Solution {
    int res = 0;
    public int minCameraCover(TreeNode root) {
        if(traverse(root) == 0)
            res++;
        return res;
    }

    int traverse(TreeNode root){
        if(root == null)
            return 2;   // By default, empty nodes have coverage to avoid install cameras on the leaf
        int left = traverse(root.left);
        int right = traverse(root.right);

        if(left == 2 && right == 2)
            return 0;
        else if(left == 0 || right == 0){
            res++;
            return 1;
        }else
            return 2;
    }   
}
  • The status of nodes:
    • 0 means no coverage
    • 1 means the node has the camera
    • 2 means the node has coverage
  • By default, empty nodes have coverage to avoid installing cameras on the leaf
<think> 我们讨论的是在Stata中执行`utest`命令后的输出解读。`utest`是用于检验二次函数(即包含$x$和$x^2$的模型)是否具有倒U型(或U型)关系的命令。用户指定了自变量为`fintech`和`fintech_sq`(即`fintech`的平方),因此模型设定为: $$ growth\_RWA = \beta_0 + \beta_1 fintech + \beta_2 fintech^2 + \text{其他控制项} + \epsilon $$ `utest`命令的零假设和备择假设为: - $H_0$:函数是单调的或U型的(即非倒U型) - $H_1$:函数是倒U型的(存在一个极大值点) ### 关键输出解读 根据用户提供的信息,`utest`的输出包含以下关键信息: 1. **函数形式 (f(x))**: - 设定为$f(x)=x^2$,即二次函数形式。 2. **极值点 (Extreme point)**: - 计算出的极值点为3.562147。该点是二次函数的顶点,由公式$-\beta_1/(2\beta_2)$计算得出。如果二次项系数$\beta_2$为负,则该点为极大值点(倒U型的顶点);如果$\beta_2$为正,则为极小值点(U型的谷底)。 3. **假设检验**: - 零假设($H_0$): 函数是单调的或U型的(即非倒U型关系)。 - 备择假设($H_1$): 函数是倒U型的(即存在一个极大值点,且该点在自变量取值范围内有意义)。 4. **检验区间**: - 检验区间为自变量的实际取值范围(例如,从最小值到最大值)。如果极值点位于该区间内,则倒U型关系可能成立。 5. **斜率分析**: - 在极值点左侧,斜率应为正(函数递增)。 - 在极值点右侧,斜率应为负(函数递减)。 6. **t值和p值**: - t值用于检验极值点两侧斜率的符号变化是否显著。具体来说,`utest`执行以下检验: - 左侧斜率(从最小值到极值点)是否显著为正。 - 右侧斜率(从极值点到最大值)是否显著为负。 - p值:如果p值小于显著性水平(如0.05),则拒绝$H_0$,支持倒U型关系。 ### 结论判断 - 若输出显示p值显著(例如p<0.05),且极值点在自变量取值范围内,则支持倒U型关系。 - 若p值不显著,则不能拒绝$H_0$,即没有足够证据支持倒U型关系(可能是单调或U型)。 ### 注意事项 1. **极值点是否在区间内**:如果极值点不在自变量的实际取值范围内(例如,小于最小值或大于最大值),则即使检验显著,倒U型关系也可能不成立,因为函数在样本区间内可能并未表现出完整的倒U形态。 2. **二次项系数的符号**:倒U型要求$\beta_2<0$;U型则要求$\beta_2>0$。`utest`默认检验倒U型(即$\beta_2<0$的情况)。如果实际二次项系数为正,则`utest`的结果不适用(应使用U型检验,但`utest`默认只做倒U型检验)。 3. **模型设定**:确保模型已包含`fintech`和`fintech_sq`,且无严重多重共线性。 ### 示例解读 假设用户得到以下结果: - 极值点:3.56 - 自变量`fintech`的取值范围:0到10(即区间[0,10]) - p值:0.03 则结论为:在5%显著性水平下,拒绝$H_0$,支持倒U型关系。极值点3.56位于[0,10]内,表明在`fintech`约3.56处存在极大值。 ### 如何验证 在Stata中,可执行以下命令验证: ```stata * 计算极值点 nlcom turn_point: -_b[fintech]/(2*_b[fintech_sq]) * 查看自变量范围 sum fintech * 绘制边际效应图 margins, dydx(fintech) at(fintech=(0(1)10)) marginsplot, yline(0) ``` ### 总结步骤 1. 确认二次项系数$\beta_2$为负(倒U型的前提)。 2. 检查极值点是否在自变量取值范围内。 3. 查看`utest`的p值:若p<0.05,则支持倒U型关系。 ### 常见问题 - **若p值不显著怎么办?** 可能不存在倒U型,或统计功效不足(样本量小、测量误差等)。 - **若极值点不在区间内怎么办?** 即使检验显著,倒U型关系在样本区间内也可能不完整(如只观察到上升或下降阶段)。 §§相关问题§§ 1. 如何解释倒U型关系中极值点不在样本区间内的情况? 2. 二次项系数为正时,如何检验U型关系? 3. 在Stata中,除`utest`外,还有哪些方法可以检验非线性关系? 请根据实际输出的p值、极值点和自变量范围,结合上述逻辑进行解读。 </think> ### 解读`utest fintech fintech_sq`的完整结果 #### 1. **函数形式** - **$f(x)=x^2$规格**: 检验基于二次函数模型: $$ \text{growth\_RWA} = \beta_0 + \beta_1 \cdot \text{fintech} + \beta_2 \cdot \text{fintech}^2 + \epsilon $$ 其中$\beta_2$为二次项系数,决定曲线形态[^1]。 #### 2. **极值点** - **极值点=3.562147**: 由公式 $\text{极值点} = -\frac{\beta_1}{2\beta_2}$ 计算得出。 **含义**: - 若$\beta_2<0$ → 此处为**最大值点**(倒U型顶点) - 若$\beta_2>0$ → 此处为**最小值点**(U型谷底) **关键验证**:需检查该点是否在`fintech`的实际取值范围内(如样本区间[1,10])。 --- #### 3. **假设检验** - **$H_0$**: 单调或U型($\beta_2 \geq 0$) - **$H_1$**: 倒U型($\beta_2 < 0$) **检验逻辑**: - 通过**t检验**验证$\beta_2$是否显著为负(因样本量较小,用t检验而非U检验[^3]) - 同时验证极值点两侧斜率符号变化(见斜率分析) --- #### 4. **斜率分析 | 区间 | 斜率符号 | 经济含义 | |--------------|----------|------------------------| | 极值点左侧 | 正 (+) | `fintech`增加 → `growth_RWA`上升 | | 极值点右侧 | 负 (-) | `fintech`增加 → `growth_RWA`下降 | **倒U型成立条件**: 1. 左侧斜率显著为正(t > 0, p < α) 2. 右侧斜率显著为负(t < 0, p < α) 3. 极值点在样本区间内 --- #### 5. **t值与p值解读 假设输出结果为: ```stata | Coef. t P>|t| ---------+----------------------- Left | 0.15 2.1 0.036* Right | -0.22 -1.8 0.074* ``` - **左侧(正斜率)**: - t=2.1 > 0 → 斜率显著为正 - p=0.036 < 0.05 → 在5%水平显著 - **右侧(负斜率)**: - t=-1.8 < 0 → 斜率显著为负 - p=0.074 < 0.10 → 在10%水平显著(边际显著) **结论**: 支持倒U型关系($H_1$),但右侧斜率稳健性较弱(p=0.074仅在10%水平显著)。 --- ### 决策建议 1. **倒U型成立性**: - 若$\beta_2$显著为负(如p<0.05)且极值点∈[min(fintech), max(fintech)] → **强证据** - 若仅一侧斜率边际显著(如p=0.074)→ **弱证据**,需补充检验 2. **补充验证**: ```stata * 联合显著性检验 test fintech fintech_sq * 绘制边际效应曲线 margins, dydx(fintech) at(fintech=(0(10)100)) marginsplot, yline(0) ``` --- ### 示例结论 > “检验显示存在倒U型关系(极值点=3.56): > - 极值点左侧斜率显著为正(t=2.1, p=0.036) > - 右侧斜率在10%水平显著为负(t=-1.8, p=0.074) > 因右侧显著性较弱,建议扩大样本量或检查极端值影响[^3]。”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值