A:Maximum Sum of 3 Non-Overlapping Subarrays
题目:In a given array nums
of positive integers, find three non-overlapping subarrays with maximum sum.
Each subarray will be of size k
, and we want to maximize the sum of all 3*k
entries.
Return the result as a list of indices representing the starting position of each interval (0-indexed).
If there are multiple answers, return the lexicographically smallest one.
题意:给定一个无序的正整数数组nums,长度为n,寻找三个不重合的长度为k的子数组得到一个最大的和,返回对应的子数组的起始位置
思路:将数组nums进行数据的累加,当数据达到k时进行记录到数组results中,results的大小为n-k+1,之后每次加上当前数,减去起始位置,
保证results中的每个结果都是k个数的和,0到k-1,1到k...,n-k到n-1,再使用一个数组left存储,从左到右的k数和的最大值的起始位置,
记录最大值第一次出现的位置,使用数组right来存储从右到左k数和的最大值的起始位置,记录最大值最后一次出现的位置,
然后从k到n-2k之间找到一个元素作为中间的子数组的起始位置,根据中间的数,找到三个最大子数组的和的可能情况,左边为中间位置减k,右边为中间位置加k,
比较最大的结果。
方案:https://leetcode.com/submissions/detail/237089350/
R:http://open.163.com/movie/2010/12/9/J/M6UTT5U0I_M6V2TJ49J.html,《平衡搜索树》,搜索树的结构不能保持平衡,它的运行效率将会大打折扣。
介绍了平衡树算法——红黑树。从红黑树的运行效率查找和更新都是O(logn),介绍了如何进行查找和如何进行节点的旋转进行更新,红黑树的特性:
性质1. 节点是红色或黑色。
性质2. 根节点是黑色。
性质3 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
T:通过java类的反射机制来进行代码简化的技巧:通过获取一个类的对象的属性集合,可以利用这一点来操作数据的读取和赋值,可以用于一些在xml节点中还有其他节点的情况,
或者是自定义的返回结果格式:
Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
String name = field[j].getName(); // 获取属性的名字
String nameTem = name.substring(0, 1).toUpperCase() + name.substring(1);
// 配置对应的方法名
Method m =model.getClass().getMethod("get" + nameTem);
// 调用getter方法获取属性值
Object value = m.invoke(model);
S:分享《如何超过大多数人》--左耳朵耗子,在技能以及领导力的维度上论述了,如何超过大多数的人。
技能:人的技能是从认知开始,然后通过学校,书本或者培训将这些零碎的认知转换成较为系统的知识,而要把知识转换成技能,
就需要训练和实践,这样就能完成从认知到知识再到技能的转换,这个过程需要耗费时间和精力,多数人会倒在这里,需要拥有足够的耐心。
领导力:要拥有领导力或者影响力,需要和之相匹配的野心和高标准,需要找到自己的特长和天赋,发扬光大,找到自己的兴趣点和事业,
建立起高级的习惯和方法,勤奋努力,不轻易放弃。
原文地址:https://www.cnblogs.com/wujunjie-Blog/p/11074331.html