单链表反转

简介: 单链表反转

@TOC

一、单链表反转

将一个给定的单链表反转,例:1-2-3-4-5,反转为5-4-3-2-1
在这里插入图片描述
在这里插入图片描述

public ListNode reverseList (ListNode head) {
        ListNode pre = null;
        ListNode next = null;
        while(head != null) {
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }

在这里插入图片描述

二、两数之和

给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。
(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)
在这里插入图片描述
在这里插入图片描述
方法1:暴力求解

public int[] twoSum1 (int[] numbers, int target) {
        //两数之和
        for(int i = 0;i < numbers.length;i++) {
            for(int j = i + 1;j < numbers.length;j++) {
                if(numbers[i] + numbers[j] == target) {
                    return new int[]{i+1,j+1};
                }
            }
        }
        return new int[2];
    }

方法2:哈希

public int[] twoSum (int[] numbers, int target) {
        HashMap<Integer,Integer> map = new HashMap<>();
        for (int i = 0; i < numbers.length; i++) {
            if(map.containsKey(target - numbers[i])) {
                return new int[]{map.get(target - numbers[i]),i};
            }
            map.put(numbers[i],i);
        }
        return new int[2];
    }

在这里插入图片描述

三、顺时针旋转矩阵

有一个nxn整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。
给定一个nxn的矩阵,和矩阵的阶数n,请返回旋转后的nxn矩阵。
在这里插入图片描述

public int[][] rotateMatrix(int[][] mat, int n) {
        int[][] arr = new int[n][n];
        for (int i = 0; i < mat.length; i++) {
            for (int j = 0; j < mat[i].length; j++) {
                arr[j][n-i-1] = mat[i][j];
            }
        }
        return arr;
    }

在这里插入图片描述

四、不用加减乘除做加法

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
在这里插入图片描述
在这里插入图片描述

import java.util.*;
public class Solution {
    public int Add(int num1,int num2) {
        int ans = 0;
        if(num2 == 0) {
            return num1;
        }
        while(num2 != 0) {
            ans = num1 ^ num2;
            num2 = (num1 & num2) << 1;
            num1 = ans;
        }
        return ans;
    }
}

在这里插入图片描述

目录
相关文章
|
SQL 存储 缓存
数据库面试题【十五、优化查询过程中的数据访问】
数据库面试题【十五、优化查询过程中的数据访问】
160 0
|
6天前
|
存储 安全 数据挖掘
性能30%↑|阿里云AnalyticDB*AMD EPYC,数据分析步入Next Level
第4代 AMD EPYC加持,云原生数仓AnalyticDB分析轻松提速。
性能30%↑|阿里云AnalyticDB*AMD EPYC,数据分析步入Next Level
|
4天前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
64433 2
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
DeepRec Extension 打造稳定高效的分布式训练
DeepRec Extension 即 DeepRec 扩展,在 DeepRec 训练推理框架之上,围绕大规模稀疏模型分布式训练,我们从训练任务的视角提出了自动弹性训练,分布式容错等功能,进一步提升稀疏模型训练的整体效率,助力 DeepRec 引擎在稀疏场景中发挥更大的优势。
|
10天前
|
SQL 存储 关系型数据库
PolarDB-X CDC之"兼容MySQL,高于MySQL"
本文主要介绍一下PolarDB-X在CDC能力上那些高阶能力。
|
4天前
|
人工智能 并行计算 监控
性价比提升50%,阿里云HPC优化实例hpc8ae正式商业化
近日,全球领先的云计算厂商阿里云宣布正式开启最新HPC优化实例hpc8ae 的商业化发布,该实例依托阿里云自研的「飞天+CIPU」架构体系,搭载第四代 AMD EPYC处理器,专为高性能计算应用优化,特别适用于计算流体、有限元分析、多物理场模拟等仿真类应用,CAE 场景下的性价比最少提升 50%。
|
10天前
|
消息中间件 存储 监控
|
1天前
|
容器 Cloud Native 安全
CTF本地靶场搭建——基于阿里云ACR实现动态flag题型的创建
本文介绍了如何利用阿里云ACR服务创建动态flag题型。阿里云容器镜像服务ACR是一个支持 OCI 标准的云原生制品托管和分发平台,提供全球化加速、大规模分发等功能,简化云原生应用交付。由于dockerhub访问不便,文章建议使用ACR作为替代。步骤包括在虚拟机内创建【GZCTF】->【WEB】->【src】文件夹,编写index.php和flag.sh文件,然后创建Dockerfile。接着,用户需在阿里云注册并使用ACR,构建、推送镜像,并在靶场部署动态容器。通过ACR,可以实现不同账号看到不同flag的动态更新,完成了动态flag题型的创建。
|
11天前
|
存储 关系型数据库 MySQL
PolarDB-X 存储引擎核心技术 | 索引回表优化
数据库系统为了高效地存储、检索和维护数据,采用了多种不同的数据组织结构。不同的组织结构有其特定的用途和优化点,比如提高查询速度、优化写入性能、减少存储空间等,目前 PolarDB-X 采用了 B-Tree 的索引组织结构。
|
7天前
|
存储 云计算 开发者
【预告】阿里云计算新品速递:HPC优化实例商业化发布
5月30日14:00,将推出专为云上高性能计算设计的HPC优化实例hpc8ae,旨在解决现有云计算基础设施对HPC应用优化不足的问题,提供经济高效的仿真解决方案,提升计算效率,加速业务创新。直播中,阿里云专家将展示实例在计算流体、有限元分析等领域的应用,并通过两个云上工业仿真Demo进行实践演示。参与直播还有机会赢取丰富礼品。
【预告】阿里云计算新品速递:HPC优化实例商业化发布