剑指Offer之Java算法习题精讲求和篇
作者:明天一定. 发布时间:2022-04-07 14:05:36
标签:Java,求和,算法,习题
题目一?
?解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode node = new ListNode(-1);
ListNode ans = node;
int carry = 0;
while (l1 != null || l2 != null) {
int n1 = l1 != null ? l1.val : 0;
int n2 = l2 != null ? l2.val : 0;
int sum = n1+n2+carry;
carry = 0;
node.next = new ListNode(sum%10);
node = node.next;
if(sum/10>=1){
carry = 1;
}
if(l1!=null){
l1 = l1.next;
}
if(l2!=null){
l2 = l2.next;
}
}
if(carry>=1){
node.next = new ListNode(1);
}
return ans.next;
}
}
第二题
?解法
class Solution {
public int lengthOfLongestSubstring(String s) {
Set<Character> occ = new HashSet<Character>();
int rk = -1, ans = 0;
for(int i = 0;i<s.length();i++){
if (i != 0) {
occ.remove(s.charAt(i - 1));
}
while(rk+1<s.length()&&!occ.contains(s.charAt(rk + 1))){
occ.add(s.charAt(rk + 1));
++rk;
}
ans = Math.max(ans, rk - i + 1);
}
return ans;
}
}
第三题
?解法
class Solution {
public int sumOfUnique(int[] nums) {
int sum = 0;
int[] arr = new int[101];
for(int i = 0;i<nums.length;i++){
arr[nums[i]]+=1;
}
for(int i = 0;i<arr.length;i++){
if(arr[i]==1){
sum+=i;
}
}
return sum;
}
}
第四题
?解法
class Solution {
public int maxAscendingSum(int[] nums) {
if(nums.length==1) return nums[0];
int sum = nums[0];
int max = Integer.MIN_VALUE;
for(int i =1;i<nums.length;i++){
if(nums[i]>nums[i-1]){
sum +=nums[i];
max = Math.max(max,sum);
}else{
max = Math.max(max,sum);
sum = nums[i];
}
}
return max;
}
}
来源:https://blog.csdn.net/wai_58934/article/details/123383870
0
投稿
猜你喜欢
- 项目介绍基于Layui的后台管理系统模板,扩展Layui原生UI样式,整合第三方开源组件,提供便捷快速的开发方式,延续LayuiAdmin的
- 一、开源项目 Javascript .NET地址: http://javascriptdotnet.codeplex.com/ 它是Goog
- spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。Sp
- 一、获取apikey,appsecret与商户号注册公众号、商户号二、获取用户的OpenId1.设置【授权回调页面域名】官方解释:用户在网页
- 1.MyBatis动态SQLMyBatis 的强大特性之一便是它的动态 SQL,即拼接SQL字符串。如果你有使用 JDBC 或其他类似框架的
- 因为项目不同,有些公用库而且还是c++的,还有一些带资源的,简单的复制遇到库升级又是一轮配置,编译成aar则解决这些麻烦。但是默认andri
- package dao;import java.sql.*;public class BaseDao { //oracle//&n
- 在Java世界中,AES、DES加密解密需要使用Cipher对象构建加密解密系统,Hutool中对这一对象做再包装,简化了加密解密过程。介绍
- 一,内部类访问成员1,内部类可以直接访问外部类的成员,包括私有。2,外部类要访问内部类,必须建立内部类对象。class Outer{int
- 一、建立一个maven工程 pom类型统一管理依赖以及版本号子工程不会使用所有的定义的依赖子工程使用依赖时无需指定版本号其pom.xml&l
- 1.为什么需要动态内存分配关于这个问题,我们先看看我们之前是如何开辟内存的。int val = 20;//在栈空间上开辟四个字节char a
- Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 1.方法声明时使
- 注:若是为了解决问题,可直接查看第二部分。1.安装与启动在下载安装前,请安装好JDK并配置好环境变量。ActiveMQ可到官网下载。点击进入
- 本文实例为大家分享了Android实现层叠卡片式banner的具体代码,供大家参考,具体内容如下效果图如下:背景由于公司VIP模块项目需要,
- 声明:作者是根据 Hongyang的博客自己实践之后,根据自己的理解写的,有什么不对的地方还望指正。 先放两张效果图 一、准备由于Andro
- 定义MD全称Message-Digest,即信息摘要,所以MD家族的算法也叫信息摘要算法MD家族有MD2、MD3、MD4、MD5,一代比一代
- java实现接口签名为了保证数据传输的安全性,跟其他系统进行数据交互时,双方应该约定好密钥,把数据进行加密,接口签名,这样双方调用接口时,验
- 圆形识别方案识别流程判断是否为封闭图形;根据圆的方程,取输入点集中的1/6、3/6、5/6处的三个点,求得圆的方程,获取圆心及半径;取点集中
- 本文实例为大家分享了java实现文件归档和还原的具体代码,供大家参考,具体内容如下基本思路: 文件归档,换句话就是把多个文件的字节
- 需求有一个固定URL的文件,服务器端程序会定期的更新这个文件,现在需要写一个工具来监控这个文件的变化。解决办法最初我想到的是把这个文件下载下