刷题记录01

这篇具有很好参考价值的文章主要介绍了刷题记录01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目一.

刷题记录01,刷题记录,java,算法,开发语言
这道题要先解释一下什么是非递增,非递增就是a[i] >a[i+1],递增则是相反.
非递减就是a[i]>a[i+1],递减就是相反

大方向思路是:

  • 遍历数组
  • 判断相邻元素的顺序关系
  • 统计排序子序列数量

具体思路:

  1. 本题依次比较整个数组
  2. a[i+1]>a[i] ,则进入非递增序列判断,直到遍历到下一个值不大于等于为止count++,然后进行下一位
    置的判断
  3. a[i+1]<a[i],则进入非递增序列判断,直到遍历到下一个值不小于等于为止count++,然后进行下一位
    置的判断
  4. a[i+1] == a[i]不进行操作,++i进行下一位置遍历,因为相等既可以属于非递增序列,也可以属于非递减
    序列。

注意的方向:
本题开始比较a[i+1]与a[i]进行比较,为了避免越界,数组定义为n+1个,同时给a[n] = 0;
a[n] = 0带来的影响,我们分为三种情况讨论:

  1. 若到a[n-1] 的最后一组是非递减序列,当i == n-1,a[i] >a[i+1],因为前面的数都是大于0的,这个输入
    条件已经说明了(去看看题目输入条件描述),里面的循环结束,i++,count++,i==n,外面的循环结束。
  2. 若到a[n-1] 的最后一组是非递增序列,当 i== n-1,a[i] >a[i+1],因为前面的数都是大于0的,这个输入
    条件已经说明了(去看看题目输入条件描述),循环再走一次,i++, i== n,里面的循环结束,i++,
    count++,i==n+1,外面的循环结束。
  3. 第三种情况 1 2 1 2 1最后一个数是单独的情况,后面补个0,序列变成1 2 1 2 1 0,当走完全面的序列
    i==n-1时,a[i] > a[i+1],进入判断出一个非递增序列,count++,i++,循环结束。
  4. 也就是说数组最后一个位置多增加一个0,不会影响第1、2情况的判断,主要是帮助第3情况的正确判断。

代码如下:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n=in.nextInt();
        //给出长度,以防止越界操作
        int[] array=new int[n+1];
        for(int i =0;i<n;i++){
            array[i]=in.nextInt();
        }
        int i=0;
        int count=0;
        while(i<n){
            //进入非递减序列
            if(array[i]<array[i+1]){
                while(i<n && array[i] < array[i+1]){
                    i++;
                }
                count++;
                i++;
            }else if(array[i] == array[i+1]){
                i++;

            }else{
                while(i< n && array[i]>=array[i+1]){
                    i++;
                }
                count++;
                i++;

            }

        }
        System.out.println(count);
    }
}

题目二

倒置字符串
刷题记录01,刷题记录,java,算法,开发语言
刷题记录01,刷题记录,java,算法,开发语言
这里注意的是,它的标点符号不逆置

具体的思路如下:
1.先逆置一段字符串中的前后单词进行置换
2.再逆置每个单词
刷题记录01,刷题记录,java,算法,开发语言文章来源地址https://www.toymoban.com/news/detail-552605.html

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void reverse(char[] array,int start,int end){
        while(start < end){
            char tmp =array[start];
            array[start] =array[end];
            array[end]= tmp;
            start++;
            end--;
        }

    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s=in.nextLine();
        char[] ch=s.toCharArray();
        int len=ch.length;
        //对整体进行了逆置
        reverse(ch,0,len-1);
        //.beijing like i
        // 注意 hasNext 和 hasNextLine 的区别
        //对标点符号进行处理
        int  i=0;
        while(i <len){
            int j =i;
            while(j <len && ch[j] !=' '){
                    j++;
            }
            if(j < len){
                reverse(ch,i,j-1);
                    i=j+1;
            }else{
                reverse(ch,i,j-1);
                i=j;
            }
        }
        String str=new String(ch);
        System.out.println(str);
        
    }
}

到了这里,关于刷题记录01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法刷题记录-树(LeetCode)

    思路(DFS 中序遍历) 考虑中序遍历的性质即可 代码 思路(DFS) 对于一个节点是否删除,有如下几种情况: 思路(DFS) 首先,需要通过dfs算法找到从原点到目标点的路径。 p a t h = [ 2 , 3 , 5 , 7 ] path=[2,3,5,7] p a t h = [ 2 , 3 , 5 , 7 ] , k = 2 k=2 k = 2 。其中7为目标点然后考虑对路径的每一节

    2024年02月09日
    浏览(47)
  • 【算法日志】动态规划刷题:01背包问题,多重背包问题(day37,day38)

    目录 前言 目标和(01背包) 一和零(01背包) 零钱兑换(多重背包) 排列总和(多重背包) 这两天都是背包问题,其中的01背包的一些应用问题需要一定的数学建模能力,需要i将实际问题简化成我们熟悉的背包问题;而这两天的多重背包问题还算比较基础,但也要我明白了

    2024年02月11日
    浏览(56)
  • 力扣算法刷题Day42|动态规划:01背包问题 分割等和子集

    力扣题目:01背包问题(二维数组) 刷题时长:参考题解 解题方法:动态规划 + 二维dp数组 复杂度分析 时间 空间 问题总结 理解递推公式困难 本题收获 动规思路:两层for循环,第一层i遍历物品,第二层j枚举背包容量以内所有值 确定dp数组及下标的含义:dp[i][j] 表示从下标

    2024年02月13日
    浏览(62)
  • LeetCode高频算法刷题记录4

    题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 参考题解:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/solution/er-cha-shu-de-zui-jin-gong-gong-zu-xian-by-leetc-2/ 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“

    2024年02月06日
    浏览(60)
  • 算法刷题记录-双指针/滑动窗口(LeetCode)

    思路 根据题目描述,我们可以知道,如果要将某个单词定义为可扩张(stretchy),需要满足如下两个条件: 所以,我们在实现的时候,可以通过两个指针p1和p2,分别指向s和word,分别统计连续的相同字符数量c1和c2,然后再通过上述的两个条件进行判断,即:如果 则表示该单

    2024年02月09日
    浏览(43)
  • Java leetcode简单刷题记录1

    最大匹配字符串:https://leetcode.cn/problems/find-maximum-number-of-string-pairs/description/ 判断字符串数组中 字符串与某个字符串反转后是否一致; StringBuffer 或者 StringBuidler的 reverse方法 回文数: https://leetcode.cn/problems/palindrome-number/ StringBuffer 或者 StringBuidler的 reverse方法 罗马数字转整数

    2024年01月18日
    浏览(39)
  • 【刷题记录④】Java从0到1入门| 集合类

    Java从0到1刷题记录 目录 一、字符串去重 二、集合遍历 三、排队系统 四、首尾交替出队 五、统计一句话中重复单词的个数 六、集合排序 总结 我几乎每天都会刷题训练来使自己对各种算法随时保持一个清晰的状态。要知道 眼过千遍不如手过一遍 ,想成为一名合格的开发工

    2024年01月20日
    浏览(27)
  • 【Web】CTFSHOW java反序列化刷题记录(部分)

    目录 web846 web847 web848 web849 web850 web856 web857 web858 直接拿URLDNS链子打就行 payload: 也可直接用ysoserial 有关CC链:CC链 1-7 分析 - 先知社区 题目提示: 用CC1打就行 先生成反弹shell的payload: 生成的payload放bp自带的decoder里进行一次url全编码 get方式传参 监听,成功反弹shell TransformedMap也

    2024年02月20日
    浏览(44)
  • 【剑指offer刷题记录 java版】数组双指针 之 其它题目

    本系列文章记录labuladong的算法小抄中剑指offer题目 题目链接:https://leetcode.cn/problems/XltzEq/ 题目链接:https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ 题目链接:https://leetcode.cn/problems/he-wei-sde-

    2024年02月11日
    浏览(48)
  • 【剑指offer刷题记录 java版】数组双指针 之 滑动窗口

    本系列文章记录labuladong的算法小抄中剑指offer题目 题目链接:https://leetcode.cn/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/ 题目链接:https://leetcode.cn/problems/MPnaiL/ 题目链接:https://leetcode.cn/problems/VabMRr/ 题目链接:https://leetcode.cn/problems/wtcaE1/ 题目链接:https://leetcode.cn/pr

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包