摘要:
为什么我们需要考虑并发?不考虑的话会出现什么问题? 并发的多个程序(进程/线程)会对计算机资源进行争夺,如果不加以控制会出现混乱、严重影响程序运行效率,甚至错误 首先是对CPU时间片的争夺 对于多线程编程而言,由于创建线程后,线程的执行顺序是由调度程序控制的,也就是说各个线程的执行顺序并没有一个确定 阅读全文
摘要:
我看到一个观点,假设我年轻时工作了 40 年并坚持储蓄,对于我头两年存下的钱比如 2 万,等到了 40 年之后它的价值很有可能连当年 1 万的东西都买不到了,也就是通货膨胀,这我们都知道似乎 那么极端点来说,我年轻时创造的价值本打算用于年老后使用,但是它却贬值了。这难道是我过去的劳动不如现在的有价值 阅读全文
摘要:
其实叫“N 字形变换”更形象 第一版代码,在二维数组中模拟打印过程,但是时间和空间效率都很差,都是 n2 string convert(string s, int numRows) { int len = s.size(); // 如果只有一行或者只有一列则直接输出 if (numRows == 1 阅读全文
摘要:
思路是模拟从低位到高位的按位相加,需要考虑进位 public String addStrings(String num1, String num2) { int bitLen1 = num1.length() - 1, bitLen2 = num2.length() - 1; StringBuild 阅读全文
摘要:
public boolean checkPerfectNumber(int num) { int sum = 0; for (int i = 1; i <= num / 2; i++) if (num % i == 0) sum += i; return sum == num; } 阅读全文
摘要:
首先回顾我们对死锁的定义,通俗易懂地说就是双方在占有自己手上的资源时,需要对方手上的资源才能继续下去,但是双方又不愿意主动放弃自己手上的资源 用一个生活中通俗易懂的例子就是:对方道歉我就道歉 这个模型用代码实现最简单的框架是这样 public class MustDeadLock implement 阅读全文
摘要:
有点挫败,50 打车大老远跑一趟,笔试做了一个半小时,结果一句没通过连人都没见到。 客观来说题不算难但也算不上简单,面试体验真的差,特别讨厌在纸上写代码算法题 1. 根据年月日输出这是一年中的第几天(只能用 int,不能用 date) public static int calculateDays( 阅读全文
摘要:
场景 定义了一个字段,存储了一个 json 数组比如:[41,38,42],它的含义是一个线性的流程定义,所以保证顺序至关重要 现在使用 MyBatis Plus 的 API 方法去通过 ID 数组查询得到对象数组 List<ProcessNodePO> processNodeList = proc 阅读全文
摘要:
华硕科技的面试手写算法题,我没见过,分析出了思路但是没把握写出来能过,于是挂了 string convertToTitle(int columnNumber) { // 计算会有几位长度 long long temp = 26; int len = 1; while (columnNumber > 阅读全文
摘要:
虽然是都是选择题,但是有做不出来的,也有很不确定的,事后复盘有印象的一些题目 分区表是将一个表的数据按水平方式划分为不同的子集,从而可以更快速有效地访问数据子集,现有表R(A,B) 该表的如下SQL语句,如果基于列A对R进行范围分区,该分区方案能提高其性能的SQL语句是: SELECT A,SUM( 阅读全文
摘要:
第一想法是双指针,一个指针用于遍历,一个指针用于标记奇数和偶数的分界,而调整位置则通过交换来实现 思路来自于快排代码,分隔指针+交换,也算是双指针? vector<int> exchange(vector<int>& nums) { // 一个遍历指针,一个分隔指针,odd指向第一个偶数 int o 阅读全文