首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

Java 代码----------------LeetCode------------ 53. 最大子序和

这道题本来是能做出来的,但是还是遗憾收场,我分析了之所以这样,是因为我做题时又乱了阵脚,没有秉承先思考这道题的思路,再往具体的算法上靠近的规则,这是一道动态规划类的题,它求的最大子序列,也是一步一步的推出来的,它的下一步是由上一步推出来的。对于这类题,你要看的我感觉就不必太多,你要着眼的就是最初的那数组的前几个,分析它们是否满足最大子序列然后就可以类推到一个更长的数组。 public int maxSubArray(int[] nums) { int[] dp = new int[nums.length]; dp[0] = nums[0]; int max = dp[0]; for (int i = 1, length = nums.length; i <length ; i++) { // 加入数组只有两个元素,那么它们要比的就是两个元素的和的大小和第一个元素和第二个元素的大小比较,首先你要明白,如果第一/二个元素是负数,那么加上它就是累赘,就不是最大长度了,所以你要判断它的第一/二个元素是否为负。 dp[i] = Math.max(dp[i-1]+nums[i],nums[i]); max = Math.max(max,dp[i]); } return max; } 所以你只需要用清楚当元素个数为2个时,你就可以推出更多的元素个数

优秀的个人博客,低调大师

菜鸟学Java-------------------必须掌握的jar之Math

// Math的构造方法是私有的 Math.max(15,18);// 返回两者中的较大的 Math.min(15,18);// 返回两者中的较小的 Math.random();// 随机返回一个(0.0到1.0中间的double类型的小数) Math.abs(15);// 返回绝对值的 Math.acos(0.7);// 这是反余弦值,输入类型必须为double,返回值在0.0到1之间,超过了1,就返回NaN Math.asin(0.1);// 返回反正弦值 Math.atan(0.3);// 返回反正切 Math.addExact(15,23);// 返回参数的和,如果溢出就报错 Math.atan2(0.2,0.3);// 这个参数是一个正对边,一个临边,结果是计算这个角正弦值的 // x=Math.atan2(7,-7) // trace(x)2.35619449019234 // x=180*x/Math.PI// 转换为角度值 Math.cbrt(27);// 这个是返回这个数的立方根 Math.hypot(3,4);// 返回两个数每个参数的平方值之和的平方根 Math.sqrt(2.0);// 返回开平方的值 Math.ceil(0.3);// 执行向上舍入 Math.round(0.3);// 执行标准舍入 Math.floor(0.3);// 执行向下舍入 Math.cos(0.3);// 返回一个角的三角余弦值 Math.copySign(12,3);// 返回第二个浮点参数符号和第一个浮点参数的值 Math.cosh(0.1);// 返回数的双曲余弦数 (ex + e-x)/2 Math.decrementExact(2); // 返回递减过1后的参数 Math.exp(1.0); // 返回e的a次方 System.out.println(Math.expm1(0.1)); // 返回ex -1 Math.floorDiv(1,1);// 返回两数商的最大正整数 Math.floorMod(1,1); // 返回两个数余数 Math.pow(2.0,5.0); // 求幂,2的5次幂 Math.toDegrees(Math.PI); // 弧度转化为角 Math.toRadians(180); // 角度转化为弧 Math.toIntExact(2); // 把long类型的值转化为int类型 Math.nextDown(0.2);// 返回比0.2小一点一点的浮点数, Math.nextUp(0.2); //返回比0.2大一点点的浮点数 Math.nextAfter(1.2,-1); //这里返回比1.2小一点点的浮点数,如果-1变成2就是比1.2大一点的浮点数 Math.rint(1.2);// 返回接近于1.2的整数的double的值, Math.log(12.0); // 返回12 的自然对数 Math.log10(12.0); // 返回以10为底的12的对数 Math.toRadians(45.0);// 这个是将参数转化为弧度的 Math.ulp(1.0);// 没用 Math.tanh(2.0); // 参数的双曲正切值 Math.subtractExact(1,2); // 返回参数的相减 的结果 Math.signum(0.2); // Math.signum(double a) 返回参数 a 的符号函数;如果参数是零,则返回零; 如果参数大于零,则返回 1.0;如果参数小于零,则返回-1.0。 Math.scalb(0.1,1); // returns (First argument*(pow(second argument,2) Math.multiplyExact(1,1); // 返回参数的乘积 Math.negateExact(2); // 返回参数的否定 Math.incrementExact(1); // 返回自加1的结果 Math.getExponent(1); // 返回以2为底的指数 如题中为0 Math.IEEEremainder(0.1,0.1); // 计算两个参数的余数运算 对于我们要用的工具包这些jar包,你如果不好好了解,好好掌握,你给我说,你会用,我说你开玩笑呐,你连用的东西都不清晰,你说你会用? 这个是我一点一点查源码,一点一点百度,测试出来的结果,包含Math下全部的方法,仅供参考。 下边的连接是一些常用的不全的 https://www.imooc.com/article/13087

优秀的个人博客,低调大师

Java中如何实现序列化,有什么意义?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。 要实现序列化,需要让一个类实现Serializable接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过writeObject(Object)方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过readObject方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆(可以参考第29题)。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册