其他
23届研究生,要崩溃了,被裁了,快一个月没找到工作,白读研了,浪费3年时间。。。
(关注数据结构和算法,了解更多新知识)
最近在网上看到一程序员在网上发帖称:23届,要崩溃了,运气真的差到极点了,努力这么多年,卷好几年java最终干了半年就被裁了,找了快一个月工作了就是没offer,心好累,白读研,白自学了,浪费三年。本来不信命,现在信了,命不好做什么努力都没用。
被裁员并不是因为个人能力不行,有时候即使一个人的能力很强,仍然可能面临被裁员的命运。这主要是因为职场环境的变化和大公司的策略调整。
一些公司可能会在业务调整或重组时选择裁员来降低成本或提高效率。在这种情况下,即使一个人能力很强,他们也可能成为公司削减成本的牺牲品。
因此,被裁员并不一定意味着个人能力不行。在面对职场的不确定性和变化时,保持灵活和适应性是非常重要的。同时,不断学习和提升自己的技能也是应对职场变化的最佳策略。接下来我们来看下各位网友的回复。
--------------下面是今天的算法题--------------
来看下今天的算法题,这题是LeetCode的第938题:二叉搜索树的范围和,我们来看下。
问题描述
难度:简单
给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
输出:23
树中节点数目在范围 [1, 2 * 10^4] 内
1 <= Node.val <= 10^5
1 <= low <= high <= 10^5
所有 Node.val 互不相同
问题分析
public int rangeSumBST(TreeNode root, int low, int high) {
if (root == null)
return 0;
int res = 0;
if (root.val >= low && root.val <= high)
res += root.val;
if (root.val < high)
res += rangeSumBST(root.right, low, high);
if (root.val > low)
res += rangeSumBST(root.left, low, high);
return res;
}
public:
int rangeSumBST(TreeNode *root, int low, int high) {
if (root == nullptr)
return 0;
int res = 0;
if (root->val >= low && root->val <= high)
res += root->val;
if (root->val < high)
res += rangeSumBST(root->right, low, high);
if (root->val > low)
res += rangeSumBST(root->left, low, high);
return res;
}
int rangeSumBST(struct TreeNode *root, int low, int high) {
if (root == NULL)
return 0;
int res = 0;
if (root->val >= low && root->val <= high)
res += root->val;
if (root->val < high)
res += rangeSumBST(root->right, low, high);
if (root->val > low)
res += rangeSumBST(root->left, low, high);
return res;
}
def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:
if root is None:
return 0
res = 0
if low <= root.val <= high:
res += root.val
if root.val < high:
res += self.rangeSumBST(root.right, low, high)
if root.val > low:
res += self.rangeSumBST(root.left, low, high)
return res