【蓝桥杯Java学习之路】LeetCode704. 二分查找

题链:https://leetcode.cn/problems/binary-search/

思路:二分查找

代码:

class Solution {
    public int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        while(left <= right){
            int mid = left + ((right - left)/2);
            if(nums[mid] > target){
                right = mid - 1;
            }else if(nums[mid] < target){
                left = mid + 1;
            }else if(nums[mid] == target){
                return mid;
            }
        }
        return -1;
    }
}

ps:int mid = left + ((right - left)/2) 防止left+right内存溢出 等同(left+right)/2

### 蓝桥杯 Java 考前冲刺知识点总结 #### 一、核心编程能力 蓝桥杯竞赛注重考察选手的基础编程能力和逻辑思维。以下是几个重要的知识点: 1. **基本语法** 掌握 Java 的基本语法规则,包括变量声明、数据类型转换以及运算符优先级等内容[^2]。 2. **控制流** 需要熟悉 `if` 条件判断、循环 (`for`, `while`) 和分支结构 (`switch-case`) 等控制流程的实现方式及其优化技巧。 3. **数组与字符串处理** 数组操作是常见考点之一;另外还需精通 String 类的方法应用,例如 substring(), replace() 等函数的功能及性能特点[^2]。 4. **面向对象概念** 对类定义、继承关系的理解非常重要,在实际题目解答过程中可能会涉及到抽象方法或者接口的设计思路。 5. **集合框架** 学会合理选用 ArrayList, HashSet 或者 HashMap 这些容器来存储并管理大量数据项可以有效提升解题效率[^2]。 6. **异常处理机制** 正确捕获可能出现的各种运行时错误对于编写稳定可靠的程序至关重要[^2]。 7. **文件I/O操作** 文件读写也是常考的内容之一,应该熟练掌握 BufferedReader/BufferedWriter 及其他相关工具类的应用场景。 8. **多线程技术简介** 尽管不是每年必考项目,但对于某些特定类型的试题来说了解 Thread 创建方式还是很有帮助的[^2]。 #### 二、推荐复习资料 为了更好地准备蓝桥杯比赛中的 Java 编程部分,建议参考如下书籍和资源进行学习: - **教材方面**: - *《Java语言程序设计》* (作者: 郎波),这本书全面介绍了 Java 基础知识体系,并配有丰富的实例练习可以帮助巩固所学理论。 - *《C++程序设计基础》*(周霭如 林伟健编著),虽然主要针对 C++,但是其中关于算法思想的部分同样适用于 Java 开发人员的学习需求. - **在线平台**: 利用 LeetCode , Codeforces 平台上的相应分类刷题活动能够极大提高实战经验水平. - **历年真题解析文档**: 查找历届蓝桥杯大赛官方发布的 java 方向赛题详解材料作为重点研习方向. ```java // 示例代码展示如何利用HashMap解决简单的计数问题 import java.util.HashMap; public class WordCount { public static void main(String[] args){ String sentence = "hello world hello"; // 初始化hashmap用于统计词频 HashMap<String,Integer> map=new HashMap<>(); // 分割句子成单词列表 String [] words=sentence.split(" "); // 遍历每个单词更新其对应的次数值 for(String word :words ){ Integer count=map.get(word); if(count==null){ map.put(word,1); }else{ map.put(word,count+1); } } System.out.println(map.toString()); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值