- 博客(11)
- 收藏
- 关注
原创 最长回文子串问题(java)
题目描述:给你一个字符串 s,找到 s 中最长的回文子串。下面用中心扩展算法来解决这个问题,该算法的思路十分简单:遍历整个字符串,判断以单个字符或两个字符中间的夹缝为中心向两边拓展的字符串是否为回文串。判断的条件为左指针left和右指针right指向的字符是否相同。循环遍历比较回文串的长度,并记录最长回文子串的起始索引和结束索引。java代码如下:class Solution { public String longestPalindrome(String s) { // 若为
2021-04-26 16:25:51
310
原创 二分查找算法解决搜索插入位置问题
问题描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。假设数组中无重复元素。public int searchInsert(int[] nums, int target) { int left = 0; int right = nums.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mi
2021-04-25 17:05:58
388
原创 二分查找算法归纳
二分查找算法思路如下:确定要查找的数组nums的左下标left,右下标right。根据left,right计算出中间下标mid。比较nums[mid]和target值,再根据比较的情况,重新确定要查找的数组的边界。即重复上述步骤。直到找到想要找的数,或者没找到(循环退出)。JAVA代码如下:public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; while (
2021-04-24 16:36:08
99
原创 二分查找整形溢出问题
left + high > Integer.MAX_VALUE当上述情况发生时,称为整形溢出。JAVA中的int型是32位二进制数,首位0和1分别表示数字的正和负,所以最大的能表示的数为2^31 - 1。若要表示的数大于等于2^31,则会仍进位,也就是首位为1,但计算机会认为这个数是负数。所以为了保证在二分查找的代码中不发生此类问题,将求中间下表mid的代码写成如下:mid = left + (right - left) / 2...
2021-04-24 16:05:10
423
原创 快速排序算法c++实现
#include <stdio.h>#include <stdlib.h> #include <time.h>#define RANDOM_INIT() srand(time(NULL))#define RANDOM(L, R) (L + rand() % ((R) - (L) + 1)) // gen a random integer in [L, R]/** * Email 956324914@qq.com * Author xlf *//**
2021-04-17 21:22:09
103
原创 归并排序算法的c++实现
#include <stdio.h>#include <stdlib.h> #include <time.h>/** * Email 956324914@qq.com * Author xlf */ /** * Merge functions merges the two sorted parts. Sorted parts will be from [left, mid] and [mid+1, right]. */template<t
2021-04-17 20:34:03
98
原创 python的tkinter使用实例 适合零基础者食用
话不多说,直接上代码:""" @Author xlf @Team occamedu @Email 956324914@qq.com @Time 2021/4/16 11:05"""import tkinter as tkimport tkinter.messageboximport picklefrom tkinter import *from sys import exit# 第1步,实例化object,建立窗口windowfrom tkinter i
2021-04-16 21:33:29
3054
原创 C++time.h中clock()函数计算代码运行时间
由于在算法实验中需要用到clock()来计算代码执行的时间,研究了一下clock()的使用方法,从time.h的源码,并结合一些优秀博客的分享一下我的用法。首先先介绍两个重要的数值 typedef long clock_t;上面是time.h源码中对clock_t的定义,可以知道clock_t是长整型。再有一个很重要是CLOCKS_PER_SEC这个常量。先贴上time.h中的源码。//表示一秒有1000个时间单元 #define CLOCKS_PER_SEC 1000由于用以秒为单位的
2021-03-28 18:23:23
1395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人