算法和数据结构
听风丨说话
这个作者很懒,什么都没留下…
展开
-
每日一道算法题+面试题day 5-6
文章只是总结,便于面试和手写算法。细节和详细解释,请看:https://leetcode-cn.com/1. 题目算法题:1. 有效的字母异位词:给定两个字符串,判断是否是字母异位词(字母打乱)2. 两数之和:给定一个数组,和一个target值,返回两数和为target的角标3. 三数之和:给定一个数组,判断是否存在a+b+c=0的元素面试题:1. View的事件分发机制2. ...原创 2019-07-13 23:17:43 · 346 阅读 · 0 评论 -
day 23-24 算法:零钱兑换、编辑距离
1. 题目给定不同的面额的硬币coins和一个总金额amount。编写一个函数来计算可以凑成总金额所需最少的硬币个数。https://leetcode-cn.com/problems/coin-change/给定两个单词word1和word2,计算出将word1转换成word2所使用的最少操作数。https://leetcode-cn.com/problems/edit-distance/...原创 2019-08-31 18:06:31 · 232 阅读 · 0 评论 -
day 19-20 算法:动态规划,爬楼梯,三角形最小路径和,乘积最大子序列,最长上升子序列
1. 题目爬楼梯:假设需要n阶能够爬到顶楼,每一次只能爬1阶或者2阶,求问,有多少种不同的方法爬上楼顶? https://leetcode-cn.com/problems/climbing-stairs/description/三角形最小路径和:https://leetcode-cn.com/problems/triangle/description/乘积最大子序列:https://le...原创 2019-08-22 00:08:24 · 406 阅读 · 0 评论 -
day 17-18 算法:位运算,统计位1的个数,2的幂次方;比特位计数
1. 题目编写一个函数,输入无符号整数,返回二进制表达式中的数字位数为’1’的个数,也称为汉明重量:https://leetcode-cn.com/problems/number-of-1-bits/给定一个整数,编写一个函数栏判断它是否是2的幂次方:https://leetcode-cn.com/problems/power-of-two/比特位计数:给定一个非负整数num,对于0<...原创 2019-08-22 00:03:41 · 399 阅读 · 0 评论 -
day 16 算法:回溯法单词搜索
本题有点复杂,需要结合leetCode来看,只当其中一个答案来看即可,不然会云里雾里。1. 题目单词搜索二:给定一个二维网格board和一个字典中的单词列表words,找出所有同时在二位网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中相邻单元格式那些水平相邻或者垂直相邻的单元格,同一个单元格中的字母不允许在同一个单词内多次出现。https://leetc...原创 2019-08-21 23:56:01 · 290 阅读 · 0 评论 -
day 14-15 算法:二分查找、字典树;实现一个求解平方根的函数,实现一个字典树
N皇后和数独问题比较难,暂时不去练习。1. 题目实现一个求解平方根的函数:实现 int sqrt(int x)函数,计算并返回x的平方根,其中x是非负整数。实现一个字典树,包含insert, search,startsWith这三个操作。2. 基本知识2.1 二分查找2.1.1 前提条件:sorted(单调递增或者递减)存在上下界能够通过索引来访问2.1.2 适用场...原创 2019-07-31 01:02:06 · 292 阅读 · 0 评论 -
day 12-13 面试题:apk瘦身、System.exit(),onDestory,Activity.finish()的区别
面试题:1. 谈谈你对apk瘦身的经验 2. System.exit(),onDestory,Activity.finish()的区别1. 谈谈你对apk瘦身的经验安装包体积对转化率、安装时间、运行内存、ROM空间几个方面影响都比较大。业务梳理,开发模式升级很多需要使用较大的so库的业务,尝试着使用h5或者小程序等其他方式替代。比如pdf文件加载,可以在使用H5插...原创 2019-07-29 18:59:13 · 286 阅读 · 0 评论 -
day 12-13 算法:二叉树最大最小深度,生成有效括号组合
1. 题目二叉树的最大深度:给定一个二叉树,找出其最大深度(离根节点最远的路径节点个数)二叉树的最小深度:给定一个二叉树,找出其最小深度(离根节点最近的路径节点个数)生成有效的括号组合:给定数字n,写出一个函数,把所有闭合的括号组合输出,n代表生成括号的对数。2. 算法题解题2.1 二叉树的最大深度:给定一个二叉树,找出其最大深度(离根节点最远的路径节点个数)解法1:深度优先DFS...原创 2019-07-29 18:58:03 · 276 阅读 · 0 评论 -
day 10-11 算法:贪心算法,广度、深度优先、股票买卖最佳时机;二叉树层次遍历
1. 题目给定一个数组,它的第i个元素是这支股价的第i天的价格,只能持有一股,买卖次数不限,无交易中介费。二叉树的层次遍历:给定一个二叉树,返回其按层次遍历的节点值2. 基本知识2.1 贪心算法2.1.1 定义又叫贪婪算法,在对问题求解时,总是做出在当前看来最好的选择。2.1.2 适用场景问题能够分为子问题来解决,子问题的最优解能递推到最终问题的最优解。贪心与动态规划的...原创 2019-07-19 17:14:33 · 747 阅读 · 0 评论 -
day 8-9 算法:二叉树遍历、递归与分治
1. 题目实现pow(x,n),即计算x的n次幂函数求众数,给定一个大小为n的数组,找到其中的众数。众数是指出现次数大于 n/2 的元素。2. 基本知识2.1 二叉树遍历前序遍历:根-左-右中序遍历:左-根-右后序遍历:左-右-根前序顺序:A-B-D-E-C-F-G中序遍历:D-B-E-A-F-C-G后序遍历:D-E-B-F-G-C-A2.2 递归递归,就是在运...原创 2019-07-19 17:12:14 · 329 阅读 · 0 评论 -
每日一道算法题+面试题day3-4
文章只是总结,便于面试和手写算法。细节和详细解释,请看:https://leetcode-cn.com/1. 题目算法题:1. 有效的括号:https://leetcode-cn.com/problems/valid-parentheses/2. 用栈实现队列:https://leetcode-cn.com/problems/implement-queue-using-stacks/...原创 2019-07-07 01:21:56 · 243 阅读 · 0 评论 -
day 6-7 面试题:什么是反射、volaitle关键字
面试题:1. 懒汉单例模式为什么要加volaitle2. 什么是反射?怎么获取一个类的成员变量、成员方法,注解信息?在项目中反射多吗?主要用来做什么?1. 面试题解题1.1 懒汉单例模式为什么要加volaitle我以前写的一篇单例模式的文章:https://blog.csdn.net/xwh_1230/article/details/781989241.1.1 懒汉单例模式使用...原创 2019-07-14 22:16:31 · 278 阅读 · 0 评论 -
day6-7算法:树、二叉树、二叉搜索树
1. 题目给定一个二叉树,判断其是否是一个有效的二叉搜索树:https://leetcode-cn.com/problems/validate-binary-search-tree/给定一个二叉树, 找到该树中两个指定节点的最近公共祖先:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/2. ...原创 2019-07-14 19:03:33 · 190 阅读 · 0 评论 -
day 25-26 算法:并查集、岛屿的个数、朋友圈问题
两个题解法其实是一致的,当多练一遍1. 题目给定一个由’1’(陆地)和’0’(水)组成的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或者垂直方向相邻的陆地连接而成。你可以假设网格的四个边均被水包围。https://leetcode-cn.com/problems/number-of-islands/班上有N名学生,其中有些人是朋友,有些则不是。他们的友谊具有传递性。如...原创 2019-08-31 18:12:07 · 757 阅读 · 1 评论