摘要:竟然让手写sql唉 查找订单数>1000的用户,倒序输出 数组和链表的区别 arraylist和linkedlist的区别 http get post session 堆是什么? 堆排序过程 堆排序、快速排序是稳定的吗? 线程通信都有哪些? mysql 索引 数据库的事务特性,一致性是什么?(回答错 阅读全文
TCL面试(3.27)
2020-03-29 11:15 by legend聪, 363 阅读, 0 推荐, 收藏, 编辑
摘要:1.java常用集合类 2.arraylist和linkedlist的区别 3.hashmap和hashtable 4.concurrent hashmap 5.java中锁 6.synchronized的底层实现 synchronized修饰方法是封锁什么? 7.redis数据类型 8.如何添加一 阅读全文
leetcode63 不同路径
2020-03-20 22:34 by legend聪, 207 阅读, 0 推荐, 收藏, 编辑
摘要:这种题目大多不用搜索,首选简单数学方法和动态规划。这里用的是动态规划如果网络只有两行的话可以用数学方法。简单的dp问题,题目求什么dp数组设什么就好。转移条件也很简单。注意判断边界情况,数组设置成long long不然会爆int。 class Solution { public: int uniqu 阅读全文
正整数求n不用sqrt
2020-03-20 12:08 by legend聪, 193 阅读, 0 推荐, 收藏, 编辑
摘要:二分法求根,四舍五入可以用round函数,正整数要用double来取。 #include <stdio.h> #include <stdlib.h> #include <math.h> #include<iostream> using namespace std; #define ACCURACY 阅读全文
leetcode1143最长公共子序列
2020-03-19 23:15 by legend聪, 212 阅读, 0 推荐, 收藏, 编辑
摘要:先定义dp[i][j]是第一个字符串的i位置和第二个字符串j位置之前最长的公共子序列数目。返回的时候返回dp[lenA][lenB class Solution { public: int longestCommonSubsequence(string text1, string text2) { 阅读全文
美团Java一面(2020.3.19)
2020-03-19 16:00 by legend聪, 309 阅读, 0 推荐, 收藏, 编辑
摘要:说说项目,以及项目中遇到的一些问题。 三道算法题: 第一题:最长公共子序列 只给了15min左右,写了个大概,dp状态转移有问题。 第二题:两个杯子,100层楼。比如一个杯子会在指定的楼层摔碎,比如39层,那么39-100层均会摔碎。问如何最快找到在哪个楼摔碎。 没理解题意,先是想二分搜索,但杯子会 阅读全文
leetcode138. 复制带随机指针的链表
2020-03-17 18:14 by legend聪, 96 阅读, 0 推荐, 收藏, 编辑
摘要:题目的意思比较难理解,分为3步。第一步建立二重链表,第二步random指针的建立,第三步拆分二重链表。 /* // Definition for a Node. class Node { public: int val; Node* next; Node* random; Node(int _val 阅读全文
leetcode48 旋转图像
2020-03-14 11:58 by legend聪, 198 阅读, 0 推荐, 收藏, 编辑
摘要:这道题只需要搞明白矩阵位置跳转逻辑即可,首选是反着赋值,只花费额外变量存储第一个值即可,然后弄清跳转过程。 class Solution { public: void rotate(vector<vector<int>>& matrix) { if(matrix.empty()&&matrix[0] 阅读全文
leetcode54 螺旋矩阵
2020-03-13 01:48 by legend聪, 96 阅读, 0 推荐, 收藏, 编辑
摘要:题目的思路是每次确定左上顶点和右下顶点,然后进行一个框的打印,注意边界条件。然后设计一个打单行和单列的算法。一个小错误如果vector为空的话调用.size()方法会引发空指针异常,所以先判空再进行下面的操作。 class Solution { public: vector<int> spiralO 阅读全文
CCF学生排队
2020-03-07 12:09 by legend聪, 136 阅读, 0 推荐, 收藏, 编辑
摘要:这题如果考虑考虑用数组折腾会非常麻烦,如果想到用vector的insert函数和erase函数就会非常舒服的模拟出来。vt.erase(it)之后it就变成了野指针,所以要用it=erase(it),这样it就会自动指向下一个元素。 #include<cstdio> #include<iostrea 阅读全文