07 2019 档案
摘要:二维dp数组 dp[i][j]前j个数字选取i段的最大和,一定要第j个数字 dp[i][j]=dp[i][j-1]+a[j-1] 这是指把第j个数字并入前面那些数字的最后一段 dp[i][j]=Max(dp[i][j],dp[i-1][m]+a[j-1]) 这是把第j个数字单独作为一段 时间复杂度(
阅读全文
摘要:思想是拿到第一个比后面大的下标,这个下标后后一位都可能被替代 还有一个我感觉就是最长递归子序列改进版本:通过率只有50%
阅读全文
摘要:题目描述: 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述: 输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正
阅读全文
摘要:主要通过后序遍历求和,加一个sum属性,表示子树的和
阅读全文
摘要:https://www.nowcoder.com/practice/12b1b8ef17e1441f86f322b250bff4c0?tpId=98&tqId=32838&tPage=1&rp=1&ru=/ta/2019test&qru=/ta/2019test/question-ranking 关
阅读全文
摘要:线程池的常规使用: 消息发送类,线程池调用 SpringBoot中使用线程池使用@EnableAsync注解和@Async注解 配置线程池: 并发业务: Controller层使用
阅读全文
摘要:监听器 因为它实现了ServletContextListener 这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener 中关联了ContextLoader 这个类,所以整个加载配置过程由ContextLoader 来完成。 借
阅读全文
摘要:重载发生在一个类里面,方法名相同,参数的个数或者类型不同,它是一种编译时多态 为什么不能根据返回类型区分重载? 在Java语言中,要重载一个方法,除了要与原方法具有相同的简单名称之外,还要求必须拥有一个与原方法不同的特征签名; 特征签名就是一个方法中各个参数在常量池中的字段符号引用的集合,也就是因为
阅读全文
摘要:1.01背包,每种类型只能取一次 法1,二维Dp: 法2,一维Dp 法三,搜索 2.完全背包,每种物品可以无限用 3.多重背包,可以把它当做01背包来理解(依旧从后往前)
阅读全文
摘要:前沿: 如果存在一个程序,所需内存空间超过了计算机可以提供的实际内存,那么由于该程序无法装入内存所以也就无法运行。单纯的增加物理内存只能解决一部分问题,但是仍然会出现无法装入单个或者无法同时装入多个程序的问题。但是可以从逻辑的角度扩充内存容量,即可解决上述两种问题。基于局部性原理,在程序装入时,可以
阅读全文
摘要:1.两个数相加,不能用加号 两个数异或:相当于每一位相加,而不考虑进位; 两个数相与,并左移一位:相当于求得进位; 将上述两步的结果相加 2.统计n的二进制中1的个数 ,我们只需要知道n的二进制数中拿掉最右边的那个1的数的1的个数加1就行 3.统计一个长数组中,唯一不成对的两个数。 如果是单独的一个
阅读全文
摘要:等待理解!!设N = abcde ,其中abcde分别为十进制中各位上的数字。 如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位以下(低位)的数字,百位以上(高位)的数字。 ① 如果百位上数字为0,百位上可能出现1的次数由更高位决定。比如:12013,则可以知道百位出现1的情况
阅读全文
摘要:基本思想就是不断互相抵消。 用一个times保存当前元素的次数 result保存当前的元素,往后遍历,当后面元素等于当前元素,times++,不等于times--,当times为0的时候,result更换为新的元素。 最后剩下的元素,在返回到数组中遍历查看这个元素的个数,times为0的时候,就保存
阅读全文
摘要:1、确定root; 2、遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树; 3、遍历右子树,若发现有小于root的值,则直接返回false; 4、分别判断左子树和右子树是否仍是二叉搜索树(即递归步骤1、2、3)。 public boolean Verif
阅读全文
摘要:这里可以利用冒泡排序和插入排序的思想:
阅读全文
摘要:关键的就是要利用前面的结果,不要一步一步往后乘。 比如2^8可以利用2^2,2^4等 这里就要涉及到二进制的右移>>1和&1
阅读全文
摘要:法1:最优解: 每一个二进制-1以后,从右往下左第一个1的后面的数都会变为1,然后与原二进制数与以后后面就都会变为0,能这样操作几次就代表有几个1 1100-1=1011 法2:
阅读全文
摘要:1.旋转数组找最小值 {3,4,5,1,2}为{1,2,3,4,5}的一个旋转数组 2.去一个排序数组中找距离target最近的节点的下标(二分法) 依次给出n个正整数A1,A2,… ,An,将这n个数分割成m段,每一段内的所有数的和记为这一段的权重, m段权重的最大值记为本次分割的权重。问所有分割
阅读全文
摘要:两个栈实现队列: 判断栈的压入弹出序列 一个带加减乘除括号的表达式计算值 用栈来排序: 一个栈作为输入栈,一个作为输出栈,拿出输入栈栈顶元素,去和输出栈比较,找到第一个比他小的,上面的元素全部压入输入栈 找出来数组中每个元素后边第一个比它大的值A=[1,5,3,6,4,8,9,10] 输出[5, 6
阅读全文
摘要:问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换! 问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。 从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下 从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动
阅读全文
摘要:QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 TPS:Transactions Per Second(每秒传输的事物处理个
阅读全文
摘要:日志类型: 错误日志:记录出错信息,也记录一些警告信息或者正确的信息。查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。二进制日志:记录对数据库执行更改的所有操作。binlog中继日志:从库
阅读全文
摘要:在Linux系统下 top 查看cpu占用很高的PID jstack -l pid /test.txt 线程快照打印到具体的文件当中 要学会看懂线程快照文件 参考:https://juejin.im/post/5d25f1d6f265da1b7638caaf
阅读全文
摘要:1.xss跨站脚本攻击 比如在表单Input框里面输入一段js代码 就会执行这一段脚本,弹出窗口 如何防范XSS攻击 前端,服务端需同时对HTML标签做转义处理。将其中的”<”,”>”等特殊字符进行转义编码。 2.CSRF攻击流程 用户登录受信任网站A; 在不退出网站A的情况下,访问危险网站B(攻击
阅读全文
摘要:远程连接数据库采用Tcp协议, 一个web服务器,一个客户端,客户端发出查询到网页的时候,web服务器就会去数据库进行查询。会去找mysqld进程。这种模型只能通过tcp/ip协议来实现。 还有一种情况就是web服务mysql在同一台服务器上,这种场景可以避免使用tcp/ip的网络,使用tcp/ip
阅读全文
摘要:https://www.cnblogs.com/aspirant/p/8876670.html 通过调用线程的interrupt()来修改interrupted标志变为true,然后通过isInerrupted()来判断是否interrupted标志 interrupted()方法判断的是当前线程是
阅读全文
摘要:Spring如何读取注解信息,然后 注入到IOC容器里面 @Retention注解:作用是定义被它所注解的注解保留多久,一共有三种策略,SOURCE 被编译器忽略,CLASS注解将会被保留在Class文件中,但在运行时并不会被VM保留。这是默认行为,所有没有用Retention注解的注解,都会采用这
阅读全文
摘要:AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是
阅读全文