今天早起了近半个小时,仔细思考了计划,决定开始学习系统性写作,以便于提升文章质量,输出更有动力。因为事情进展顺利,所以心情越来越好,下班之后还心血来潮去听了一场交响乐音乐会,虽然不太听得懂,也受到了现场气氛的感染,回去之后感觉内心十分宁静,可能古典音乐有平复情绪的作用吧。
今日进度:
1.决定学习系统性写作提高文章质量
2.坚持刷题,坚持学习
3.坚持记录
4.时间太晚了,锻炼留给明天早上了
5.学习投资知识,阅读优质理财文章
学习笔记:
1.技术类文章写作技巧:
(1)从遇到的问题引出思考再引出解决该问题的技术点
(2)分清楚听众是谁,他们已有哪些信息,缺乏哪些信息,要以怎么样的顺序来传达自己的想法
(3)反复阅读写出来的文字,毫不吝啬地删除无用的信息,重新再写
2.Spring 事务管理,一个数据库事务是一个被视为单一的工作单元的操作序列。这些操作应该要么完整地执行,要么完全不执行。
3.事务的概念可以描述为具有以下四个关键属性ACID:
原子性:事务应该当作一个单独单元的操作,这意味着整个序列操作要么是成功,要么是失败的。
一致性:这表示数据库的引用完整性的一致性,表中唯一的主键等。
隔离性:可能同时处理很多有相同的数据集的事务,每个事务应该与其他事务隔离,以防止数据损坏。
持久性:一个事务一旦完成全部操作后,这个事务的结果必须是永久性的,不能因系统故障而从数据库中删除。
4.一个真正的 RDBMS 数据库系统将保证每个事务都有四个属性。
使用 SQL 发布到数据库中的事务的简单视图如下:
(1)使用 begin transaction 命令开始事务。
(2)使用 SQL 查询语句执行各种删除、更新或插入操作。
(3)如果所有的操作都成功,则执行提交操作,否则回滚所有操作。
5.局部事务是特定于一个单一的事务资源,如一个 JDBC 连接,而全局事务可以跨多个事务资源事务,如在一个分布式系统中的事务。
6.局部事务管理在一个集中的计算环境中是有用的,该计算环境中应用程序组件和资源位于一个单位点,而事务管理只涉及到一个运行在一个单一机器中的本地数据管理器。局部事务更容易实现。
7.全局事务管理需要在分布式计算环境中,所有的资源都分布在多个系统中。在这种情况下事务管理需要同时在局部和全局范围内进行。分布式或全局事务跨多个系统执行,它的执行需要全局事务管理系统和所有相关系统的局部数据管理人员之间的协调。
8.322. 零钱兑换
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。
输入:coins = [1, 2, 5], amount = 11
输出:3
解释:11 = 5 + 5 + 1
解题思路:使得F(i)为组成金额为i的硬币最少数量,对应的状态转移方程为
当前状态的F(i)等于之前状态F(i-cj)的最小值加1。遍历每一种状态,最后得到的F(amount)即为答案。
class Solution {
public int coinChange(int[] coins, int amount) {
int dp[] = new int[amount+1];
Arrays.fill(dp, amount + 1);
dp[0] = 0;
for(int i=1; i<=amount; i++){
for(int j=0; j<coins.length; j++){
if(coins[j]<=i){
dp[i] = Math.min(dp[i], dp[i-coins[j]]+1);
}
}
}
return dp[amount] > amount ? -1 : dp[amount];
}
}
今天心情真的还不错,明天继续加油!