static void Main(string[] args) { string w1 = "Dad"; string w2 = "Father"; //Создание экземпляра делегата на основе метода Console.WriteLine("На основе метода:"); MaxOrMin f1 = new MaxOrMin(Max); LongestOrShortest("Длиннее: ", w1, w2, f1); MaxOrMin f2 = Min; LongestOrShortest("Короче: ", w1, w2, f2); //Использование лямбда-выражение Console.WriteLine("\nИспользование лямбда-выражение:"); LongestOrShortest("Длиннее: ", "Mother", "Mom", (string str1, string str2) => { if (str1.Length > str2.Length) { return(str1); } else { return(str2); } } ); //Использование Func Console.WriteLine("\nBльзование Func:"); LongestOrShortestFunc("Func", "Function", Max); //Использование Action Console.WriteLine("\nИспользование Action:"); Action <string, string> a = (str1, str2) => { if (str1.Length < str2.Length) { Console.WriteLine("Короче:" + str1); } else { Console.WriteLine("Короче:" + str2); } }; a("Action", "Act"); Console.ReadLine(); }
private static IObservable <TResult> Calculate <TObject, TResult>([NotNull] this IObservable <ChangesAndCollection <TObject> > source, [NotNull] Func <TObject, TResult> valueSelector, MaxOrMin maxOrMin, TResult emptyValue = default(TResult)) where TResult : struct, IComparable <TResult> { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (valueSelector == null) { throw new ArgumentNullException(nameof(valueSelector)); } return(source.Scan(default(TResult?), (state, latest) => { var current = state; var requiresReset = false; foreach (var change in latest.Changes) { var value = valueSelector(change.Item); if (!current.HasValue) { current = value; } if (change.Type == AggregateType.Add) { int isMatched = maxOrMin == MaxOrMin.Max ? 1 : -1; if (value.CompareTo(current.Value) == isMatched) { current = value; } } else { //check whether the max / min has been removed. If so we need to look //up the latest from the underlying collection if (value.CompareTo(current.Value) != 0) { continue; } requiresReset = true; break; } } if (requiresReset) { var collecton = latest.Collection; if (collecton.Count == 0) { current = default(TResult?); } else { current = maxOrMin == MaxOrMin.Max ? collecton.Max(valueSelector) : collecton.Min(valueSelector); } } return current; }) .Select(t => t ?? emptyValue) .DistinctUntilChanged()); }
public HeapDouble(MaxOrMin maxOrMin) { _elements = new List <Point>(); _maxOrMin = maxOrMin; }
public Heap(int size, MaxOrMin maxOrMin) { _elements = new int[size]; _maxOrMin = maxOrMin; }
public IActionResult Getssrk(int type) { var response = ResponseModelFactory.CreateResultInstance; try { var timestamp = GetTimeStamp(); string masterSecret = "917f2d05481695420cdb74d109e38874a009fbb01e5739772ccac0fa4fdf2ab0f703c2fa6ce68af9ac9bc02b25bfb0cfd2b9e97e9aea37b7a2ab0e3a420638ca"; string appKey = "linanqu"; string getCorrectionUrl = "https://webapi.getui.com/api/auth/creditAuth"; var sign1 = GetMD5Hash(timestamp); var sign = GetSHA256Hash(appKey + sign1 + masterSecret); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(getCorrectionUrl); myRequest.Method = "POST"; myRequest.ContentType = "application/json"; string body = "{\"appKey\":\"" + appKey + "\",\"sign\":\"" + sign + masterSecret + "\",\"timestamp\":" + Convert.ToInt32(timestamp) + ",\"version\":\"" + "0.0.1" + "\"}"; byte[] btbs = Encoding.UTF8.GetBytes(body); myRequest.ContentLength = btbs.Length; myRequest.GetRequestStream().Write(btbs, 0, btbs.Length); HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string returnJson = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 var code = myResponse.StatusCode.ToString(); reader.Close(); myResponse.Close(); Timedata model = JsonConvert.DeserializeObject <Timedata>(returnJson); string token = model.data.accessToken; if (type == 1) { string getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getList"; HttpWebRequest myRequest1 = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1); myRequest1.Method = "POST"; //请求头参数设置 myRequest1.Headers.Add("Access-Token", token); myRequest1.ContentType = "application/json"; myRequest1.UseDefaultCredentials = true; string body1 = "{\"code\":\"" + "330112" + "\"}"; byte[] btbs1 = Encoding.UTF8.GetBytes(body1); myRequest1.ContentLength = btbs1.Length; myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length); HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse(); StreamReader reader1 = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8); string returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 var code1 = myResponse1.StatusCode.ToString(); reader1.Close(); myResponse1.Close(); TimeStreet model1 = JsonConvert.DeserializeObject <TimeStreet>(returnJson1); int max = 0; int min = 0; using (_dbContext) { Guid id = Guid.Parse("8678D1A0-1E2F-49B3-8F36-17CC1FD8F2CD"); MaxOrMin maxOrMin = _dbContext.MaxOrMin.Where(x => x.Guid == id).FirstOrDefault(); if (model1.data.children[11].count > Convert.ToInt32(maxOrMin.MaxCount)) { maxOrMin.MaxCount = model1.data.children[11].count.ToString(); max = Convert.ToInt32(maxOrMin.MaxCount); } else { max = Convert.ToInt32(maxOrMin.MaxCount); } if (model1.data.children[11].count < Convert.ToInt32(maxOrMin.MinCount)) { maxOrMin.MinCount = model1.data.children[11].count.ToString(); min = Convert.ToInt32(maxOrMin.MinCount); } else { min = Convert.ToInt32(maxOrMin.MinCount); } _dbContext.MaxOrMin.Update(maxOrMin); _dbContext.SaveChanges(); } model1.data.children[11].maxcount = max; model1.data.children[11].mincount = min; response.SetData(model1.data.children[11]); } else if (type == 2) { string getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getUserTags"; HttpWebRequest myRequest1 = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1); myRequest1.Method = "POST"; //请求头参数设置 myRequest1.Headers.Add("Access-Token", token); myRequest1.ContentType = "application/json"; myRequest1.UseDefaultCredentials = true; string body1 = "{\"code\":\"" + "330112109000" + "\"}"; byte[] btbs1 = Encoding.UTF8.GetBytes(body1); myRequest1.ContentLength = btbs1.Length; myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length); HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse(); StreamReader reader1 = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8); string returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 var code1 = myResponse1.StatusCode.ToString(); reader1.Close(); myResponse1.Close(); TimePerson model1 = JsonConvert.DeserializeObject <TimePerson>(returnJson1); response.SetData(model1); } else if (type == 3) { string getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getOriginCity"; HttpWebRequest myRequest1 = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1); myRequest1.Method = "POST"; //请求头参数设置 myRequest1.Headers.Add("Access-Token", token); myRequest1.ContentType = "application/json"; myRequest1.UseDefaultCredentials = true; string body1 = "{\"code\":\"" + "330112109000" + "\"}"; byte[] btbs1 = Encoding.UTF8.GetBytes(body1); myRequest1.ContentLength = btbs1.Length; myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length); HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse(); StreamReader reader1 = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8); string returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 var code1 = myResponse1.StatusCode.ToString(); reader1.Close(); myResponse1.Close(); TimeSource model1 = JsonConvert.DeserializeObject <TimeSource>(returnJson1); response.SetData(model1); } else if (type == 4) { string getCorrectionUrl1 = "https://webapi.getui.com/api/population/count/getWorkData"; HttpWebRequest myRequest1 = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1); myRequest1.Method = "POST"; //请求头参数设置 myRequest1.Headers.Add("Access-Token", token); myRequest1.ContentType = "application/json"; myRequest1.UseDefaultCredentials = true; string body1 = "{\"area_code\":\"" + "330112109000" + "\"}"; byte[] btbs1 = Encoding.UTF8.GetBytes(body1); myRequest1.ContentLength = btbs1.Length; myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length); HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse(); StreamReader reader1 = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8); string returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 var code1 = myResponse1.StatusCode.ToString(); reader1.Close(); myResponse1.Close(); TimePostWork model1 = JsonConvert.DeserializeObject <TimePostWork>(returnJson1); response.SetData(model1); } return(Ok(response)); } catch (Exception ex) { response.SetFailed("获取失败"); response.SetData(ex.Message); return(Ok(response)); } }
static void LongestOrShortest(string way, string word1, string word2, MaxOrMin Fnk) { Console.WriteLine(way + Fnk(word1, word2)); }
public static int[] mergeArrays(int[][] arr) { /* * Write your code here. */ Heap heap; int K = arr.Length; int N = arr[0].Length; int[] result = new int[K * N]; if (K == 0) { return(new int[0]); } if (N == 1) { return new int[1] { arr[0][0] } } ; MaxOrMin maxOrMin = MaxOrMin.NoFound; for (int i = 0; i < K; i++) { for (int j = 0; j < N; j++) { if (arr[0][0] > arr[0][1]) { maxOrMin = MaxOrMin.Max; break; } else if (arr[0][0] < arr[0][1]) { maxOrMin = MaxOrMin.Min; break; } } if (maxOrMin != MaxOrMin.NoFound) { break; } } heap = new Heap(N * K, maxOrMin); for (int i = 0; i < K; i++) { for (int j = 0; j < N; j++) { heap.Add(arr[i][j]); } } int pointer = 0; while (pointer <= (N * K) - 1) { result[pointer] = heap.Pop(); pointer++; } return(result); } }
/// <summary> /// .ctor /// </summary> /// <param name="maxOrMin">max heap or min heap</param> public MaxMinHeap(MaxOrMin maxOrMin) => _maxOrMin = maxOrMin;