- “力扣算法:题海战术”专栏的完整源代码更新啦
达文汐
力扣算法:题海战术算法leetcode职场和发展
关于专栏的源码感谢大家的阅读与支持!!“力扣算法:题海战术”专栏的文章,是给大家提出了LeetCode算法问题的解决思路及实现该算法的核心代码。大家如果想要进一步深入了解算法,想通过输入测试数据来了解其运算的过程。可点击文章底部的名片,关注后,可获得完整的可运行调试的Java代码。有疑问的,可在评论区留言哦!!完整代码已上传(会持续更新)部分算法代码参考(LeeetCode26)/*此道算法题详细
- leetcode_121 买卖股票的最佳时期
_不会dp不改名_
#贪心#动态规划leetcode算法职场和发展
1.题意有一个股价变化图,你可以在一天买入,在未来一天卖出。求通过这样一次操作的最大获利。2.题解2.1枚举直接枚举,买入卖出的时间,肯定会超时啦~时间复杂度为O(n2)O(n^2)O(n2)空间复杂度为O(1)O(1)O(1)classSolution{public:intmaxProfit(vector&prices){intans=0;intn=prices.size();for(inti=
- LeetCode-179-最大数
刻苦驴哝
给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例1:输入:nums=[10,2]输出:"210"示例2:输入:nums=[3,30,34,5,9]输出:"9534330"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest
- 【算法300题】:双指针
双指针板块925.长按键入leetcode链接你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入1次或多次。你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。思路这道题目只要是末尾的边界条件比较恶心一点classSolution{public:boolisLongPressedName
- 46. 携带研究材料(01背包二维数组) 46. 携带研究材料(01背包一维数组)LeetCode 416. 分割等和子集 Leetcode 1049. 最后一块石头的重量II
Tiny番茄
算法动态规划
46.携带研究材料(01背包二维数组)题目是给定一个物品的重量数组weight,和物品对应的价值数组value。另外给了背包需要装多少种物品,和背包的容量(即输入两个数组+背包所考虑的物品种类category和背包的容量bagweight)dp数组的定义,下标表示什么含义。dp[i][j]表示容量为j的背包从编号[0,i]之间选取物品进行存放所能达到的最大价值。其中,横轴上的坐标可以考虑为是背包的
- 动态规划之爬楼梯
LeetCode地址:爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例1:输入:2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:3输出:3解释:有三种方法可以爬到楼顶。-1阶+1阶+1阶-1阶+2阶-2阶+1阶第一种方法动态规划1.确定dp数组dp[i]爬到第i层楼梯,有dp[i
- LeetCode - 剑指 Offer 66. 构建乘积数组
翊棽312
LeetCodeleetcode算法职场和发展
原题地址。剑指Offer66.构建乘积数组题目描述解题思路遍历乘法源代码运行结果总结反思题目描述解题思路遍历乘法先将其分为上下两个三角:下三角从上往下:从第二行开始,并且给B[0]赋初值1。累乘结果等于前一个的B[i-1]乘以a数组当前索引的前一个的元素a[i-1](这是因为相邻两行之间,下一行比上一行的左三角多了一个**a[i-1]**元素)。一个循环下来之后,每个B元素得到了a数组左下角各自的
- 【从零开始的LeetCode-算法】3202. 找出有效子序列的最大长度 II
九圣残炎
算法leetcodejava
给你一个整数数组nums和一个正整数k。nums的一个子序列sub的长度为x,如果其满足以下条件,则称其为有效子序列:(sub[0]+sub[1])%k==(sub[1]+sub[2])%k==...==(sub[x-2]+sub[x-1])%k返回nums的最长有效子序列的长度。示例1:输入:nums=[1,2,3,4,5],k=2输出:5解释:最长有效子序列是[1,2,3,4,5]。示例2:输
- leetcode 3202. 找出有效子序列的最大长度 II 中等
圣保罗的大教堂
leetcodeleetcode
给你一个整数数组nums和一个正整数k。nums的一个子序列sub的长度为x,如果其满足以下条件,则称其为有效子序列:(sub[0]+sub[1])%k==(sub[1]+sub[2])%k==...==(sub[x-2]+sub[x-1])%k返回nums的最长有效子序列的长度。示例1:输入:nums=[1,2,3,4,5],k=2输出:5解释:最长有效子序列是[1,2,3,4,5]。示例2:输
- 五大编程竞赛平台终极对比
2401_86601498
c++
LeetCodeLeetCode是一个流行的在线编程平台,提供大量算法和数据结构题目。题目分为简单、中等和困难三个难度级别。LeetCode的题目涵盖各种主题,包括数组、字符串、树、动态规划等。LeetCode支持多种编程语言,包括C++,并提供在线代码编辑器和即时反馈。LeetCode还提供竞赛和面试模拟功能,适合准备技术面试的用户。CodeforcesCodeforces是一个以竞赛为主的在线
- 【NO.4】LeetCode经典150题-80. 删除有序数组中的重复项 II
【NO.4】LeetCode经典150题-80.删除有序数组中的重复项II80.删除有序数组中的重复项II【中等】给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以**「引用」*
- leetcode: 167. 两数之和 II - 输入有序数组
-兮
#leetcodeleetcode算法数据结构
中等难度题目描述给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[index1]和numbers[index2],则1twoSum(vector&numbers,inttarget){intk=numbers.size()-1;vectorres({1,2});for(vector
- Day61 二叉树中的最大路径和
Shimmer_
给你一个二叉树的根节点root,返回其最大路径和https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中至多出现一次。该路径至少包含一个节点,且不一定经过根节点路径和是路径中各节点值的总和。示例1:1/\23输入:root=[1
- Leetcode 202 快乐数
Leetcode202快乐数编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。示例1:输入:n=19输出:true解释:12+92=8282+22=6862+82=1
- Leetcode刷题营第十五题:相交链表
科大饭桶
leetcode算法链表数据结构c
160.相交链表相关给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。自定义评测:评测系统的输入如下(你设计的程序不适用此输入):intersectVal-相交的起始节点的值。如果不存在相交节点,这一值为0l
- 代码随想录算法训练营第二十五天
天天开心(∩_∩)
算法
LeetCode.491递增子序列题目链接递增子序列题解classSolution{List>resList=newArrayList>();Listres=newArrayList>findSubsequences(int[]nums){dfs(nums,0);returnresList;}privatevoiddfs(int[]nums,intindex){Setuset=newHashSet
- Leetcode刷题营第三十三题:对称二叉树
101.对称二叉树给你一个二叉树的根节点root,检查它是否轴对称。示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围[1,1000]内-100val!=q->val){returnfalse;}returnismirrortree(p->left,q->right)&&is
- 代码随想录算法训练营总结篇
m0_74934708
算法
第一次接触卡哥的课程是在大二上,当时做N皇后的题目看到卡哥的视频觉得大受裨益,就想着有时间能够刷完卡哥录制的整期课程,后面有算法训练营的监督让我很幸运地坚持了六十天,学到了很多东西,像贪心算法、动态规划、单调栈以及在二叉树里使用BFS和DFS,都是一些很美妙的思路。这次一刷leetcode后面要去学学前端了,等到暑假有时间希望可以跟着卡哥二刷leetcode。学会算法后再去做题有些痛苦,但做出来的
- 代码随想录算法训练营第二十二天
天天开心(∩_∩)
算法深度优先
LeetCode.77组合题目链接组合题解classSolution{List>result=newArrayListpath=newLinkedList>combine(intn,intk){dfs(n,k,1);returnresult;}publicvoiddfs(intn,intk,intcount){if(path.size()==k){result.add(newArrayList>r
- 代码随想录算法训练营第二十三天
天天开心(∩_∩)
算法
LeetCode.39组合总和题目链接组合总和题解classSolution{List>resList=newArrayList>();Listres=newArrayList>combinationSum(int[]candidates,inttarget){if(candidates==null||candidates.length==0){returnresList;}Arrays.sort
- 代码随想录算法训练营第二十四天
天天开心(∩_∩)
算法深度优先
LeetCode.93复原IP地址题目链接复原IP地址题解classSolution{ListresList=newArrayList();Listres=newArrayList();publicListrestoreIpAddresses(Strings){if(s.length()==0)returnresList;dfs(s,0);returnresList;}publicvoiddfs(
- 代码随想录算法训练营第十七天
天天开心(∩_∩)
算法数据结构
目录LeetCode.654最大二叉树题目链接最大二叉树题解解题思路LeetCode.617合并二叉树题目链接合并二叉树题解解题思路LeetCode.700二叉搜索树中的搜索题目链接二叉搜索树中的搜索题解解题思路解题思路LeetCode.98验证二叉搜索树题目链接验证二叉搜索树题解解题思路解题思路总结与收获LeetCode.654最大二叉树题目链接最大二叉树题解classSolution{publ
- 2020-12-09
幸福大黑鸭
IT1.LeetCode:汇总区间Java编写2020-12-09(228.汇总区间)2.《Java从入门到精通》明日科技:P351~355阅读记xmind笔记,并自己实现实例。知识点之前确实都学过,但还是再系统复习一下吧。3.《Semantic-awareWorkflowConstructionandAnalysisforDistributedDataAnalyticsSystems》:粗读关键
- Leetcode 04 java
im_AMBER
leetcodejava算法
坚持坚持坚持!!!!呵呵额呵呵不想学了,坚持坚持坚持坚持坚持!!!!题目234.回文链表给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围[1,105]内0vals=newArrayList();//将链表的值复
- LeetCode 725 分割链表
哎呦,帅小伙哦
#LeetCode每日一题#链表链表leetcode
模拟,先计算平均每段链表的长度,在计算前面有几段偏长的链表,最后进行分割。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,Li
- Leetcode 02.04 分割链表
wanglitaozai
链表leetcode数据结构c++
面试题:02.04分割链表给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有小于x的节点都出现在大于或等于x的节点之前。你不需要保留每个分区中各节点的初始相对位置。示例1:输入:head=[1,4,3,2,5,2],x=3输出:[1,2,2,4,3,5]示例2:输入:head=[2,1],x=2输出:[1,2]提示:链表中节点的数目在范围[0,200]内-100valnext
- LeetCode链表题解技巧归纳总结
最近集中刷了一批链表的题型,在这里总结一下解题技巧,以及对应题目的解题思路。解题思路并不会细致入微,主要是为了总结归类,并且希望用几句话来激发灵感,权当是没思路时的指引以及以后复习时的提纲了。还有一些重要或者总会绕晕的经典题目,也在这里记录一下代码的实现逻辑。一、链表题解的两个技巧遇到链表相关的题,无论问题是什么,先要想想是不是可以用上以下的两个技巧。哨兵节点双指针1、哨兵节点哨兵节点是一个非常常
- leetcode725 分隔链表
斜月&三星
leetecode
给定一个头结点为root的链表,编写一个函数以将链表分隔为k个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过1,也就是说可能有些部分为null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例:1->2->3->4,k=5//5结果[[1],[2],[3],[4],null]示例1:输入:
- 排序算法之【归并排序】
丶小鱼丶
算法排序算法java
目录实现归并排序【MergeSort】并提供升序和降序方法归并排序方法测试LeetCode-215题实现归并排序【MergeSort】并提供升序和降序方法/***归并排序*/publicclassMergeSort{//升序排列privatestaticfinalintUP_SORT_TYPE=1;//降序排列privatestaticfinalintDOWN_SORT_TYPE=-1;/***升
- LeetCode 数据流中的第 K 大元素
吴敬悦
设计一个找到数据流中第k大元素的类(class)。注意是排序后的第k大元素,不是第k个不同的元素。请实现KthLargest类:KthLargest(intk,int[]nums)使用整数k和整数流nums初始化对象。intadd(intval)将val插入数据流nums后,返回当前数据流中第k大的元素。示例:输入:["KthLargest","add","add","add","add","ad
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持