发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.csdn.net/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.csdn.net/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
问题描述:给定一个钢条的长度,求最大效益和切割方法
长度和价格的关系如下:
length 1 2 3 4 5 6 7 8 9 10
price 1 5 8 9 10 17 17 20 24 30
package com.dynamic;
public class CutRod {
private int []price;
private int length;
private int []r;
private int []s;
public CutRod(int []price){
this.price=price;
}
/**
*自顶向下递归
* @param length
* @return
*/
public int momoizedCutRod(int length){
r=new int[length+1];
for(int i=0;i<=length;i++){
r[i]=-1;
}
return memoizedCutRodAux(length,r);
}
private int memoizedCutRodAux(int length,int []r){
if(r[length]>=0){
return r[length];
}
int q;
if(length==0){
q=0;
}else{
if(length>=price.length){
q=price[price.length-1];
}else{
q=price[length];
}
if(length>price.length){
for(int i=1;i<=price.length-1;i++){
q=Math.max(q, price[i]+memoizedCutRodAux(length-i,r));
}
}else{
for(int i=1;i<=length-1;i++){
q=Math.max(q, price[i]+memoizedCutRodAux(length-i,r));
}
}
}
r[length]=q;
return q;
}
public int bottomUpCutRod(int length){
r=new int[length+1];
r[0]=0;
for(int j=1;j<=length;j++){
int q=0;
if(j>=price.length){
q=price[price.length-1];
}else{
q=price[j];
}
for(int i=1;i<=j;i++){
q=Math.max(q, price[i]+r[j-i]);
}
r[j]=q;
}
return r[length];
}
public int extendBottomUpCutRod(int length){
r=new int[length+1];
s=new int[length+1];
r[0]=0;
for(int j=1;j<=length;j++){
int q=0;
if(j>=price.length){
q=price[price.length-1];
}else{
q=price[j];
}
for(int i=1;i<=j;i++){
if(q<=price[i]+r[j-i]){
q=price[i]+r[j-i];
s[j]=i;
}
}
r[j]=q;
}
return r[length];
}
public void printSolution(int length){
extendBottomUpCutRod(length);
int n=length;
while(n>0){
System.out.print(s[n]+" ");
n=n-s[n];
}
System.out.println();
}
public static void main(String[] args) {
int []price=new int[]{0,1,5,8,9,10,17,17,20,24,30};
CutRod cut=new CutRod(price);
System.out.println(cut.extendBottomUpCutRod(3));
cut.printSolution(3);
System.out.println(cut.extendBottomUpCutRod(4));
cut.printSolution(4);
System.out.println(cut.extendBottomUpCutRod(5));
cut.printSolution(5);
System.out.println(cut.extendBottomUpCutRod(10));
cut.printSolution(10);
System.out.println("===========");
System.out.println(cut.bottomUpCutRod(5));
System.out.println("===========");
System.out.println(cut.momoizedCutRod(4));
}
}