561. 数组拆分 I
public class Solution {
public int ArrayPairSum(int[] nums) {
Array.Sort(nums);
for(var i = 2; i < nums.Length; i+=2) nums[i] += nums[i - 2];
return nums[^2];
}
}
public class Solution {
public int ArrayPairSum(int[] nums) {
Array.Sort(nums);
for(var i = 2; i < nums.Length; i+=2) nums[i] += nums[i - 2];
return nums[^2];
}
}
public class Solution {
public ListNode RemoveNthFromEnd(ListNode head, int n) {
var pre = new ListNode(0, head);
var fast = pre;
while (n-- > 0)
fast = fast.next;
var slow = pre;
while (fast.next != null)
(fast, slow) = (fast.next, slow.next);
slow.next = slow.next.next;
return pre.next;
}
}
继续阅读[力扣] 算法 19~21 (C#) public class Solution {
public string LongestCommonPrefix(string[] strs)
{
if (strs.Length == 0) return string.Empty;
var ret = strs[0].AsSpan();
foreach(var str in strs.AsSpan(1))
{
ret = LCP(ret, str);
if (ret.Length == 0) break;
}
return ret.ToString();
}
static ReadOnlySpan<char> LCP(ReadOnlySpan<char> left, ReadOnlySpan<char> right)
{
if (left.Length > right.Length) return LCP(right, left);
var to = 0;
while(to < left.Length)
{
if (left[to] != right[to]) break;
to++;
}
return left.Slice(0,to);
}
}
using index = System.Int32;
public class Solution {
public int[] TwoSum(int[] nums, int target) {
var map = new Dictionary<int, index>();
for (var i = 0; i < nums.Length; i++)
{
if (map.TryGetValue(target - nums[i], out var index))
return new int[] { i, index };
map[nums[i]] = i;
}
throw new Exception();
}
}
继续阅读[力扣] 算法 1~3 (C#) // http://lx.lanqiao.cn/problem.page?gpid=T223
Scanner in = new Scanner(System.in);
String a = in.nextLine().toLowerCase();
String b = in.nextLine().toLowerCase();
int[] alp = new int[26];
for (char ch : a.toCharArray())
alp[ch - 'a']++;
for (char ch : b.toCharArray())
alp[ch - 'a']--;
boolean ret = true;
for (int i : alp) {
if (i != 0) {
ret = false;
break;
}
}
System.out.println(ret ? "Y" : "N");
// http://lx.lanqiao.cn/problem.page?gpid=T513
Scanner in = new Scanner(System.in);
long num = in.nextLong();
HashSet<Integer> set = new HashSet<>();
while (num > 1) {
int i = 2;
while (true) {
if (num % i == 0) {
set.add(i);
num /= i;
break;
}
i++;
}
}
int ret = 1;
for (int i : set) {
ret *= i;
}
System.out.println(ret);
// http://lx.lanqiao.cn/problem.page?gpid=T519
Scanner in = new Scanner(System.in);
int n = in.nextInt();// 学生数
int m = in.nextInt();// 图画数
int pattern = (1 << m) - 1;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(n);
for (int i = 0; i < n; i++) {
int num = 0;
for (int j = 0; j < m; j++) {
num <<= 1;
if (in.nextInt() == 1) {
num |= 1;
}
}
map.merge(num, 1, Integer::sum);
}
int ret = 0;
for (Entry<Integer, Integer> e : map.entrySet()) {
ret += e.getValue() * map.getOrDefault(~e.getKey() & pattern, 0);
}
System.out.println(ret / 2);
Scanner in = new Scanner(System.in);
int line = in.nextInt();
int[] arr = new int[line];
Arrays.fill(arr, 1);
for (int i = 0; i < line; i++) {
for (int j = i - 1; j > 0; j--) {
arr[j] += arr[j - 1];
}
for (int j = 0; j <= i; j++) {
System.out.printf("%d ", arr[j]);
}
System.out.println();
}
static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
int leng = in.nextInt();
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < leng; i++) {
map.putIfAbsent(in.nextInt(), i + 1);
}
System.out.println(map.getOrDefault(in.nextInt(), -1));
}