【Java】一只小菜坤的编程题之旅【1】

简介: 【Java】一只小菜坤的编程题之旅【1】

1.判断是否为回文字符串(题号:牛客NC141 )

新手菜坤的答案:

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 待判断的字符串
     * @return bool布尔型
     */
    public boolean judge (String str) {
        // write code here
        int right=str.length()-1;
        int left=0;
            while (left<right){
                if (str.charAt(left)!=str.charAt(right)){
                return false;
                }
            left++;
            right--;
            }
             return true;
        }
        
    }

此题技巧:使用双指针法。

2、求平方根(题号:牛客NC32 )

直接遍历

import java.util.*;
public class Solution {
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    public int sqrt (int x) {
        // write code here
        int res = 1;
        // 注意转换为 long, 否则会产生溢出
        while ((long)res * res <= x) {
            res=res+1;
        }
        return res-1;
    }
}

3.截断句子(力扣)

这本来是非常简单的一道题,但我一看到题目就想暴力遍历,写了好几次都出现错误,但好在最后还是搞出来了,但是时间和空间复杂度都比较高。

public  class Solution  {
    public static String truncateSentence(String s, int k) {
        int count=0;
        int len1=s.length();
        String S="";
        for(int i=0;i<=len1-1;i++){
            if (count!=k){
              if(s.charAt(i) != ' '){
                S=S+s.charAt(i);
              }
              else {
                if(count!=k-1){
                S=S+' ';
                  }
                count++;
              }
            }
            else
                break;
        }
        int len2=S.length();
        return  S.substring(0,len2);
    }
}

4.删除有序数组中的重复项(力扣)

此题技巧:使用快慢指针,这种解法不需要额外的空间,而且时间复杂度非常低。

class Solution {
   public int removeDuplicates(int[] nums) {
        int slow = 0;
        for(int fast = 1; fast < nums.length; fast++) {
            if (nums[fast] != nums[slow]) {
                slow++;
                nums[slow] = nums[fast];
            }
        }
        return slow + 1;
    }
}
目录
相关文章
|
2月前
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
251 83
|
28天前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
205 3
|
1月前
|
Java
Java编程:理解while循环的使用
总结而言, 使用 while 迴圈可以有效解决需要多次重复操作直至特定條件被触发才停止執行任务场景下问题; 它简单、灵活、易于实现各种逻辑控制需求但同时也要注意防止因邏各错误导致無限迁璇発生及及時處理可能発生异常以确保程序稳定运作。
167 0
|
1月前
|
安全 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石
|
1月前
|
移动开发 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石
|
2月前
|
设计模式 Java 数据库连接
Java编程的知识体系 | Java编程精要
Java是一种广泛使用的通用编程语言,具备面向对象、跨平台、安全简单等优势,适用于桌面、企业、Web、移动及大数据等多个领域。它功能强大且易于学习,是程序设计入门和面向对象思想学习的优选语言。本书系统讲解Java编程知识,涵盖技术核心与应用拓展两大模块,内容包括基础语法、面向对象设计、GUI、数据库、多线程、网络编程及Web开发等,帮助读者全面掌握Java开发技能。
77 0
|
2月前
|
安全 Java
Java编程探究:深入解析final关键字
1. **使用限制**: 对于 `final` 方法和类,可以限制其他开发人员对代码的使用,确保其按设计的方式工作而不会被子类意外改变。
91 0
|
2月前
|
存储 缓存 安全
深入讲解 Java 并发编程核心原理与应用案例
本教程全面讲解Java并发编程,涵盖并发基础、线程安全、同步机制、并发工具类、线程池及实际应用案例,助你掌握多线程开发核心技术,提升程序性能与响应能力。
100 0
|
3月前
|
缓存 安全 算法
2025 年 Java 秋招面试必看 Java 并发编程面试题实操篇
Java并发编程是Java技术栈中非常重要的一部分,也是面试中的高频考点。本文从基础概念、关键机制、工具类、高级技术等多个方面进行了介绍,并提供了丰富的实操示例。希望通过本文的学习,你能够掌握Java并发编程的核心知识,在面试中取得好成绩。同时,在实际工作中,也能够运用这些知识设计和实现高效、稳定的并发系统。
88 0

热门文章

最新文章