程序员30岁前需要明白的几个人生真相!

5,155 阅读4分钟

文章首发到公众号:月伴飞鱼,每天分享程序员职场经验+科普AI知识!

大家好呀,我是飞鱼

工作几年,也让我明白了一些工作和生活上的道理,这里分享给大家。

图片

健康是第一位的:

年轻时总觉得身体是铁打的,熬夜、暴饮暴食都无所谓。

但随着年龄的增长,会开始感受到身体的疲惫和不适,所以不要提前透支自己的身体。

工作是为了赚钱:

面试的时候,HR会跟你说,这个岗位虽然工资低点,但能学到很多东西,别被忽悠了。

当你的能力和你的薪资不匹配时,果断跳槽,趁年轻,还有机会多赚点钱。

学会存钱:

有钱真的可以提升自己的幸福感和安全感

所以需要强制储蓄,降低物欲,控制消费!

自我成长:

学习和成长是一生的事业,投资自己,不断学习提升自己的能力和技能。

做自己喜欢的事:

不再为了迎合他人而活,只做自己喜欢的事,才能找到真正的快乐和满足感。

考公不一定是退路:

如今考公岗位要求大多都是应届生,或者30周岁,35周岁以下,然后还有党员、专业限制,门槛越来越高。

因为想吃这碗饭的人越来越多,如果大家想考,最好趁着应届生的身份行动起来。

远离精神内耗:

不要因为工作而内耗自己,要明白工作只是工作而已。

行动起来:

有什么想法,或者想做的事情,趁年轻赶紧行动起来,因为这个时候你还有精力,有时间,试错成本较低。

等到你上有老下有小的时候,很多事情就不敢尝试了,或者是没精力尝试了。

远离股票:

老老实实把钱存银行,除非你有5千万以上了,再接触股票吧。

股票这个专业人士都不一定能做好的事情,水比较深,要把钱花在和自己相关的事情上。

有啥其他看法,欢迎在评论区留言讨论。

想看技术文章的,可以去我的个人网站:hardyfish.top/

  • 目前网站的内容足够应付基础面试(P6)了!

每日一题

题目描述

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。

该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

解题思路

从最右上角的元素开始找,如果这个元素比target大,则说明找更小的,往左走。

如果这个元素比target小,则说明应该找更大的,往下走。

代码实现

Java代码:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if(matrix == null || matrix.length < 1 || matrix[0].length < 1){
            return false;
        }
        //起点为最右上角的元素
        int row = 0, col = matrix[0].length - 1;
        //判断当前数组元素和target,如果当前大于target,往左走;小与target,往下走
        while(row < matrix.length && col >= 0){
            if(matrix[row][col] < target){
                row++;
            }else if(matrix[row][col] > target){
                col--;
            }else{
                return true;
            }
        }
        //走出边界了还没找到,说明不存在,返回false
        return false;
    }
}

Python代码:

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        m, n = len(matrix), len(matrix[0])
        i, j = 0, n - 1  # 从右上角开始
        while i < m and j >= 0:  # 还有剩余元素
            if matrix[i][j] == target:
                return True  # 找到 target
            if matrix[i][j] < target:
                i += 1  # 这一行剩余元素全部小于 target,排除
            else:
                j -= 1  # 这一列剩余元素全部大于 target,排除
        return False

Go代码:

func searchMatrix(matrix [][]int, target int) bool {
    m, n := len(matrix), len(matrix[0])
    i, j := 0, n-1 // 从右上角开始
    for i < m && j >= 0 { // 还有剩余元素
        if matrix[i][j] == target {
            return true // 找到 target
        }
        if matrix[i][j] < target {
            i++ // 这一行剩余元素全部小于 target,排除
        } else {
            j-- // 这一列剩余元素全部大于 target,排除
        }
    }
    return false
}

复杂度分析

时间复杂度:O(m+n)

  • 其中 m 和 n 分别为 matrix 的行数和列数。

空间复杂度:O(1)

DDD实战课

课程链接:time.geekbang.org/column/intr…

资料链接:url81.ctfile.com/f/57345181-…

访问密码:3899

从0开始学大数据

课程链接:time.geekbang.org/column/intr…

资料链接:url81.ctfile.com/f/57345181-…

访问密码:3899

趣谈网络协议

课程链接:time.geekbang.org/column/intr…

资料链接:url81.ctfile.com/f/57345181-…

访问密码:3899