java算法小知识练习】的更多相关文章

偶尔翻开了以前的练习题,不自觉又想随手敲一遍,虽然有些思想依然是那么老套,但毕竟也算是对知识的巩固 了. 一.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 具体思路很简单,就是拿出一个数,跟其他三个中的任意两个不重复的组,最后加起来, /** * 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? * 时间:2016年3月10日21:34:15 * */ public class Zushu { public static…
话不多说,直接上题: 题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.   有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单. 思路:创建两个char型数组,分别存放 a,b,c 和x,y,z.然后分别遍历 这两个数组,取出符合条件的值, 代码如下: public static void main(String[] args) { char[] AArray = { 'a', 'b', 'c' }; c…
 序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习JAVA过程中总结的一些小知识吧! ①JAVA语言规定标识符的命名规则: 标识符应以“字母”.“下划线”.“美元符号$” 开头,不能以“数字”开头: 标识符可以由“字母(A-Z,a-z)”.“下划线”.“美元符号$” 或“数字(0-9)”组成: Java标识符需要注意区分大小写,长度无限制:(类名首字…
1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/short/char的表述范围,则可以自动转型.4. 零开头为八进制,零x开头为十六进制5. byte 1个字节 -127~128 short 2个字节 正负3万 int 4个字节 21亿左右 long 8个字节 可以在数字后加l或L表示6. 浮点数默认类型为double,要将其变为float,需要…
1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11),二十四进制(0-23)) 计算机是通过二进制来读取我们生活中的数据. 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为0 ,将余数从下上连接起来就是二进制 10---->1010 二进制转十进制:将二进制的每一位乘以2^n ,n从0开始,n每一次加一,在将结果相加. 1001 --…
大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒! .net里的时间戳与java不同,所有需要特殊处理一个它的其实时间,而且.net里时间戳为double,如何要给java传输,需要转为long! java与.net时间在进行传输时,不建议直接使用时间字符串,因为会有兼容问题,还是建议使用时间戳为标准. 开一个.net里的一个扩展方法,主要用来生…
软件开发什么是软件?  一系列按照特定顺序组织的计算机数据和指令的集合什么是开发?  制作软件 人机交互  软件的出现实现了人与计算机之间的更好的交互交互方式   图形化界面:这种方式简单直观,使用者易于接受,容易上手操作  命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作.较为麻烦.需要记住一些命令 计算机语言  我们告诉它做什么,它就可以做什么.前提是,我们和它说的内容它必须识别才可以.这就是计算机语言 Java语言概述  是SUN(Stanford University…
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; public class Test2 { public static void main(String[] args) throws Exce…
作为一个程序员,有时候我觉得自己都不适合,因为自己数学不好,算法不好,脑子不够灵活.而对于算法,感觉就像是数学题,总觉得很难.以前上学,在班里总有几个什么都不好,但唯独数学很厉害,真气人!面对难题时,我只能求助,自己想破脑瓜子都想不出什么好的解决办法,都不知道怎么提高这方面的能力.只能慢慢学习了. 自己买了本算法的书,有空的时候就看看,写一写,总是收获的!下面是几个例子: 1.判断闰年 public class LeapYear { public static int leapYear(int…
顺序选择循环,三种 1.至于循环和递归 循环效率更高,但是递归在处理文件递归的时候更为常见快捷 在java中实现传多参 2.public static void main(String[]  args) 即数组就是传多参 在scala中用的*符号 def fun4(elements :Int*)={} 3. 1多态(polymorphism)的定义 多态是面向对象的必备特性,指的是同一接口的不同实现方式,多态允许基类的指针指向子类方法.在C++中通过虚函数实现. 2多态的作用 1 不必编写每一子…
*Map接口 Map<k,v>接口中接收两个泛型,key和value的两个数据类型 Map中的集合中的元素都是成对存在的每个元素由键与值两部分组成,通过键可以找对所对应的值.值可以重复,键不可以重复. Map接口的方法 put(k,v) get(k) remove() 1.put方法:将指定的键与值对应起来,并添加到集合中 方法返回值为键所对应的值 使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中: 使用put方法时,若指定的键…
Integer装箱与拆箱 装箱: Integer i = 10; 相当于:Integer i = Integer.valueOf(10); 拆箱: Integer i = 10; //装箱 int t = i; //拆箱,实际上执行了 int t = i.intValue();   另: Integer与int使用==进行比较,对Interger进行拆箱 Interger会缓存-128~127的值,部分源码如下: public static Integer valueOf(int i) { if…
有以下两个代码: package com.lk.A; public class Test3 { public static void main(String[] args) { try { int a = args.length; int b = 42/a; int c[] = {42}; c[42] = 42; System.out.println("b="+b); } catch (ArithmeticException e) { // TODO: handle exception…
Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看戏 本次Ai算法属于初级算法 稍微用点小套路还是可以干掉他的 以后会更新高级算法 本次还对程序进行了模块化 拆分成了几个文件 下面请看源码关联 下面请看源代码 GameApp.Java 游戏入口类 package main.game; /** 游戏入口类 **/ public class GameA…
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. 我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多.编码的前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写的代码都是一些功能业务逻辑).但同时自己心里明白,自己其实没有什么水平,自己这3,4年以来学懂的东西就那么多,其他人几个月就可以…
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父…
Levenberg-Marquardt算法基础知识 (2013-01-07 16:56:17) 转载▼   什么是最优化?Levenberg-Marquardt算法是最优化算法中的一种.最优化是寻找使得函数值最小的参数向量.它的应用领域非常广泛,如:经济学.管理优化.网络分析.最优设计.机械或电子设计等等.根据求导数的方法,可分为2大类.第一类,若f具有解析函数形式,知道x后求导数速度快.第二类,使用数值差分来求导数.根据使用模型不同,分为非约束最优化.约束最优化.最小二乘最优化.   什么是L…
JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 第五,HashMap和Hashtable的区别. 第六,Collection 和 Co…
java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直接排序,之所以直接,就是简单粗暴,不像冒泡,冒泡是紧挨着的两个小伙伴两两比较,直接排序是每一趟直接拿当前i与整个数组中所有元素进行比较,如果大小不一致,直接替换,相当于跳跃过去了,根本不考虑小伙伴的感受,我看到哪个小伙伴比我小,我就占领它的位置,彼此替换. package com.rsc.sort;…
java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 j 之后,开始按住左哨兵(i),让右哨兵(j)往左走(j--),找到比key小的元素后,按住右哨兵(j),开始让左哨兵往右走(i++),直到找到比key大的元素,让i和j脚下的值互换,此时完成第一趟快排,之后开始按照这个思路进行while循环,跳出循环的条件很简单,就是当两个哨兵碰头了,就跳出循环,…
 Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变.静态网页,图片 avi等 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. 静态web资源开发技术 Html 常用动态web资源开发技术: JSP/Ser…
Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java的入门知识: 基础常识 软件开发,     人机交互方式,   常用的DOS命令 如见开发的概念 软件:一系列按照特定顺序的组织的计算机数据和指令的集合. 常见的软件:  QQ MSN  飞信  微信  支付宝.. 系统软件: 应用软件 什么是开发?软件开发就可以简单的理解为制作软件. 知识扩延:人…
首先我们复习之前的小知识,本期博客与之前有关 js数据类型 基本数据类型:string    undefined         null         boolean          number 引用数据类型:     Object     array       function 二者的区别 基本数据类型就是简单的操作值,引用数据类型,把引用地址赋值给变量 堆内存 就是存放代码块的,存放形式有两种,一种是对象一键值对的形式存放 另一种就是函数 以字符串的形式存放 案例 引用数据类型的赋…
如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训1.Python能够胜任大数据吗? Python很适合做大数据相关的分析,内置的C编译的模块能应对常见的操作,个别极端的算法建议用C重写相关模块.Python本身的特点更多的是高效率的开发和简单的维护,速度交给C去吧,更多的问题其实出自写代码的人没有更好的使用,而不是效率不够高.比如排序,本来Pyt…
有如下线程类定义: public class MyThread extends Thread { private static int num = 0; public MyThread() { num++; } @Override public void run() { System.out.println("主动创建的第" + num + "个线程" + currentThread().getName()); } } 看如下方法的执行结果: public stat…
Java 算法(一)贪心算法 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 一.贪心算法 什么是贪心算法?是指在对问题进行求解时,总是做出当前看来是最好的选择.也就是说,不从整体最优上加以考虑,所得出的结果仅仅是某种意义上的局部最优解. 因此贪心算法不会对所有问题都能得到整体最优解,但对于很多问题能产生整体最优解或整体最优解的近似解. 贪心算法的构成部分: 候选对象集合 :候选添加进解的对象的结合· 解对象集合 :初始时…
问题描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列. 试编程计算,一共有多少种不同的摆花方案. 输入格式 第一行包含两个正整数n和m,中间用一个空格隔开. 第二行有n个整数,每两个整数之间用一个空格隔开,依次表示a1.a2.……an. 输出格式 输出只有一行,一个整数,表示有多少种方案…
问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要自己洗牌,自己就一定会输.所以小弱T认为自己洗牌不够均匀,就独创了一种小弱洗牌法. 小弱洗牌法是这样做的:先用传统洗牌法将52张扑克牌(1到K各四张,除去大小王)打乱,放成一堆,然后每次从牌堆顶层拿一张牌.如果这张牌的大小是P(1到K的大小分别为1到13),那么就把这张牌插入到当前手中第P张牌的后面.如果当前手中不足P张牌,那么就把这张牌放在最后. 现在给你一…
目前要设计即时通讯的整体架构,包括服务端.Android.IOS.PC.平板等等系统,所以需要研究一下手机的实现方式,开始从Android入手,偶尔在这记录下小知识. ADT: 1.页面功能请求结构,目前看是类似于MVC的,Activity类似于Controller,layout中的页面.xml文件为View,自动生成的R.java相当于Model,当然有些牵强附会了Activity可不是一个控制器这么简单,但是请求结构的话可以先这么理解,算是初步学习. 请求顺序是Activity—>加载lay…
Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载与重写.多态.封装等 分析: 1.须要载入图片.绘图 2.建一个面板.主页面 3.行星类 . . . 效果图: 先看一下源代码结构图: 如今逐步分析各个类的功能: 1)工具类-----util包中 --Constant类   封装了游戏中用到的常量 --GameUtil类  封装了游戏的图片载入功能…