base深圳,上来直接5道算法,做1小时,做完一道一道讲思路,然后反问。上来直接五道算法,没问八股和项目,哈人。算法: (1) 给定一个字符串,编写一段代码测试该段字符串的括号是否完全闭合。     [()]{}{[()()]()} - true     [(()] - false (2) 数组a[N],存放了数字1至N-1,其中某个数字重复一次。写一个函数,找出被重复的数字。     时间复杂度必须为O(N), 空间复杂度不能是O[N]。     函数原型:int find(int a[], int N) (3) 有一个二叉树,每个节点的值是一个整数。     写一个函数,判断这棵树中是否存在从根到叶子节点的一个路径,这个路径上所有节点之和为某一个值。     存在返回1, 否则返回0。     class TreeNode    {        int value;        TreeNode left;        TreeNode right; };        int haspath(TreeNode root, int value)    }(4)  给定一个无序的整数数组,找到其中最长的上升子序列。    示例:    输入: [10,9,2,5,3,7,101,18]    输出: [2,3,7,101] 或 [2,3,7,18] 说明:    可能会有多种最长上升子序列的组合,你只需要输出其中一个即可。    你算法的时间复杂度应该为 O(n2),或者更好的 O(nlogn) 方案 (5) 实现 LRU 存储,LRUCache(capacity) 以正整数作为容量 capacity 初始化 LRU 缓存。            LRU 算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。            class LRUCache(capacity){ add(var key, var val); get(var key); } 反问:(1)有了一定项目经验后,前端学习应该先注重深度还是广度(2)针对我的表现有什么建议(3)岗位业务对我的建议:加强数据结构和算法#我的实习求职记录#
点赞 13
评论 9
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务