动态规划简析与例题笔记
一:确定状态研究最优策略的最后一步化为子问题二:转移方程根据子问题定义直接得到三:初始条件和边界情况细心,考虑周全四:计算顺序利用之前的计算结果动态规划题目特点计数:有多少种方式走到右下角有多少种方式选出K个数使得和是SUM求最大最小值从左上角走到右下角路径的最大数字和最长上升子序列的长度求存在性取石子游戏,先手是否必胜能不能选出K个数使得和是SUm例一public class Main{ public static void
while(scanf(“%d“,&n)==1) 在JAVA中实现类似功能
import java.util.Scanner;public class shujutongji { public final static int INF=1000000000; public static void main(String[] args) { // TODO Auto-generated method stub int x,n=0,min=INF,max=-INF,s=0; Scanner scanner=new Scanner(System.in); //次数
java版本-输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些 数都是不超过1000的整数。 输入包含多组数据,每组数据第一行是整数个数n,第二行是n个整数。
import java.util.Scanner;public class shujutongji { public final static int INF=1000000000; public static void main(String[] args) { // TODO Auto-generated method stub int x,n=0,t=0,s=0; boolean kase=false; Scanner scanner=new Scanner(System.i
JAVA版本开灯问题
开灯问题。有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯 将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输 入n和k,输出开着的灯的编号。k≤n≤1000。C语言版本#include<stdio.h> #include<string.h> #define maxn 1010 int a[maxn]; int main() { int n
java版本蛇形填数
蛇形填数。在n×n方阵里填入1,2,…,n×n,要求填成蛇形。n=4时方阵为:import java.util.Arrays;import java.util.Scanner;public class shexingtianshu { public static void main(String[] args) { int[][] a=new int[20][20]; Scanner scanner=new Scanner(System.in); int n =scanner.n
Python数字转换中文大写
关键在于如何解决10100中0的描述,通过判断上一位的值是否为‘’零‘’,具体看代码:list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾']list2 = ['圆', '拾', '佰', '仟', '萬']money = input("请输入金额:")money2 = ''for i in range(0, len(money)): if int(money[i]) != 0: money2 += li
三角形最大距离Java版本
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99;输入格式 文件中首先读到的是三角形的行数。接下来描述整个三角形输出格式 最大总和(整数)样例输入573 88 1 02 7 4 44 5 2 6 5样例输出30import java.util.Scanner;publi
快速排序 && 归并排序
题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ances...
网络协议---TCP(有点长)vs UDP
一、预备知识1.理解源IP地址和目的IP地址2.认识端口号◆端口号是一位32位的整数◆端口号用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来处理◆IP地址+端口号能够标识网络上的某一台主机的一个进程◆一个端口号只能被一个进程占用3.理解“端口号”和“进程ID”一个进程可以绑定多个端口号,但是一个端口号不能被多个进程绑定二、TCP协议vs UDP协议1.TCP协议◆传输层协议◆有连接◆可靠传输◆面向字节流2.UDP协议◆传输层协议◆无连接◆不可靠传输◆面向
Java内存模型---JMM
一、Java的内存模型JMM1.JMM概述:JMM主要是为了为了规定线程和内存之间的一些关系,根据JMM的设计,系统存在一个主内存,JAVA中所有实例变量都储存在主内存中,对于所有线程都是共享的,每条线程都有自己的工作内存,工作内存由缓存和堆栈两部分组成,缓存中保存的是主内存中变量的拷贝,缓存可能并不总和主内存同步,也就是缓存中变量的修改可能没有立刻写到主内存中,堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量2.JMM是什么JMM (Java Memory Model)是Java
理解JVM---类加载
一、类加载的时机如果类没有进行过初始化,则需要先触发其初始化,虚拟机规范则是严格规定了有且只有五种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始)1.创建类的实例(new 的方式),访问某个类或接口的静态变量,或者对该静态变量赋值,调用类的静态方法(类.xxx调用)2.反射的方式3.初始化某个类的子类,则其父类也会被初始化4.Java虚拟机启动时被标明为启动类的类,直接使用java.exe命令来运行某个主类(包含main方法的那个类)5.当使用JDK1.7的动态语言支持时
理解JVM---垃圾回收(重点)
一、垃圾回收简介:Garbage Collection(GC),Java进程在启动后会创建垃圾回收线程,来对内存中误用的对象进行回收二、垃圾回收的时机1.Sysrem.gc()显示的调用System.gc(),此方法调用是建议JVM进行FGC(Full GC),虽然只是建议而非一定,但很多情况下它会出发FGC,从而增加FGC的频率,一般不使用此方法,让虚拟机自己去管理它的内存2.JVM垃圾回收机制决定创建对象时需要分配内存空间,如果空间不足,触发GCjava.lang.Object中有一个fi
Windows 基本指令&& Linux基本指令
一、Windows相关大小写不敏感1.CMD的命令cd:目录切换(大篇符切换需要使用 “盘符:”,比如D:ipconfig:显示网卡信息ping:查看是否能连接目的IPcls:清空当前页面显示的内容2. 特殊的进程services.msc:系统服务regedit:注册表3.需要关注的一些东西./:当前路径…/:上一级路径相对路径时需要二、Linux指令大小写敏感,数据库也有大小写敏感的设置及默认设置,比如MySQL默认是不敏感的,但是可以设置为敏感的参
多线程(一)---初阶篇
一、初识线程1.什么是线程进程是系统分配资源的最小单位,线程是系统调度的最小单位,一个进程内的线程之间是可以共享资源的,每个进程至少有一个线程存在,即主线程2.创建线程的方式2.1创建线程-方法1-继承Thread类可以通过继承Thread来创建一个线程类,该方法的好处是this代表的就是当前线程,不需要通过Thread.current.Thread来获取当前线程的引用class MyThread extends Thread{ @Override public void run(){ S
操作系统进程间消息队列通信实验
操作系统进程间消息队列通信实验进程间消息队列通信实验所用函数说明实现代码如下:#include<stdio.h>#include<sys/types.h>#include<sys/wait.h>#include<sys/msg.h>#include<sys/ipc.h>#include<stdlib.h>#include<unistd.h>#define MSGKEY 75struct msgform
今日推荐
周排行